Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.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 来自listview适配器的上下文菜单_Android - Fatal编程技术网

Android 来自listview适配器的上下文菜单

Android 来自listview适配器的上下文菜单,android,Android,我不完全确定这是否可行,但我有几个使用listview适配器的活动。我想在listview项目上实现一个上下文菜单,我已经能够使用 public View getView(int position, View convertView, ViewGroup parent) { View vi = convertView; vi.setOnCreateContextMenuListener(new OnCreateContextMenuListener() { @Ov

我不完全确定这是否可行,但我有几个使用listview适配器的活动。我想在listview项目上实现一个上下文菜单,我已经能够使用

public View getView(int position, View convertView, ViewGroup parent) {
    View vi = convertView;
    vi.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
        @Override
        public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
            menu.setHeaderTitle(sf.checkBusinessTitle(businessList.getBusinessName()));
            ....rest of context menu creation code...
        }
}
如何从适配器中创建onContextItemSelected

编辑:如果将以下内容添加到适配器,则会出现错误“MyAdapter类型的onContextItemSelected(MenuItem)方法必须重写或实现超类型方法”:

@Override
public boolean onContextItemSelected(MenuItem item){
}

任何帮助都将不胜感激。

与您在
ArrayAdapter
实现之外所做的完全相同。在
getView()
方法中,只需设置:

your_context.registerForContextMenu(convertView);    // Supposing convertView is your View

并在
活动
中定义
onContextItemSelected
覆盖方法,而不是在
ArrayAdapter
扩展中定义。

因此我必须向每个使用listview处理onContextItemSelected的活动添加代码?无法获得一组代码来处理选择?不确定您试图做什么以及如何做,但如果您试图在多个活动上重用相同的
列表视图
,则可能可以使用
片段
,或者更容易地定义全局函数(在扩展
应用程序
的类中)其中,您传递
ListView
id,它将覆盖该视图的
onContextItemSelected
方法。希望这有帮助!好的-将其放入
片段中。。如何在OnContextItemSelected中的listview中检索项目的ID我想这就是您想要做的,请看一下: