Android:单击ListItem调用showContextMenuForChild时为空指针
我有以下问题: 我在列表视图上显示项目,如果用户单击该项目,我希望显示该项目的上下文菜单。因此,我所做的是,添加一个具有以下代码的侦听器:Android:单击ListItem调用showContextMenuForChild时为空指针,android,listview,Android,Listview,我有以下问题: 我在列表视图上显示项目,如果用户单击该项目,我希望显示该项目的上下文菜单。因此,我所做的是,添加一个具有以下代码的侦听器: @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { if (view == null) { return; } if (sessionListView == null) {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (view == null) {
return;
}
if (sessionListView == null) {
sessionListView = (SessionListView) findViewById(R.id.sessionlist);
}
if (view != null) {
sessionListViewSelected = position;
sessionListViewSelectedKey = (String) authList.keySet().toArray()[position];
sessionListView.showContextMenuForChild(view);
}
}
有人有什么建议吗?有什么问题吗
谢谢 出现此问题的原因可能是您正在从单独的线程更新ListAdapter。您应该只改变UI元素所依赖的UI元素或类 尝试以下操作以更新UI线程上的数据:
listAdapter.getView().post(new Runnable() {
public void run() {
// change listAdapter here
}
});
是否在显示ListView后更改其内容?是的,还有另一个线程,它会更改ListAdapter和刷新列表的处理程序。。。这可能会导致问题吗?以下是有关getPositionForView引发NullPointerException的一些信息,并解释了其发生的原因:
listAdapter.getView().post(new Runnable() {
public void run() {
// change listAdapter here
}
});