Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:单击ListItem调用showContextMenuForChild时为空指针_Android_Listview - Fatal编程技术网

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
    }
  });