生成上下文菜单时如何获取 ListView 中的选择项

7

我希望从列表视图中获取一个选定的项目。

当长按列表视图项时,我得到上下文菜单(一切正常),但我想知道如何检测是哪个POSITION 触发了长按事件。

1. 在/res/menu/NAMEOFXMLUWANT.XML 中声明要在上下文菜单中使用的项目,如下所示:

...

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<item android:id="@+id/Abrir"
      android:title="@string/Abrir" />
<item android:id="@+id/Editar"
      android:title="@string/Edit" />
    <item android:id="@+id/Borrar"
      android:title="@string/delete" />
<item android:id="@+id/Alarma"
      android:title="@string/Alarma" />
</menu>

如果您想在LIST VIEW中使用上下文菜单,请在2º-AFTER课程中使用以下代码:

lista =我的列表视图

 lista = (ListView) findViewById(R.id.Lista);
        final ArrayAdapter<String> adaptador = new ArrayAdapter<String>(
                this, android.R.layout.simple_list_item_1, ficheros);
        lista.setLongClickable(true);

        lista.setAdapter(adaptador);

        lista.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

            @Override 
            public void onCreateContextMenu(ContextMenu menu, View v,
                    ContextMenuInfo menuInfo) { //here u set u rute
                MenuInflater inflater = getMenuInflater();
                inflater.inflate(R.menu.activity_main, menu);

            }
        });

第三步,最后,你需要将onclick设置为items。
@Override
public boolean onContextItemSelected(MenuItem item) {
    AdapterContextMenuInfo menuInfo = (AdapterContextMenuInfo) item 
            .getMenuInfo(); 
    switch (item.getItemId()) {
  case R.id.Editar:
    System.out.println("Editar");
    return true;
  case R.id.Borrar:
        System.out.println("borrar");
    return true;
  case R.id.Abrir:
        System.out.println("Abrir");
    return true;

  case R.id.Alarma:
        System.out.println("Alarma");
    return true;

  default:
    return super.onContextItemSelected(item);
  }
}

对我来说,这一切都还可以 :), 但我想通过长按来选择项目,谢谢阅读 ^^
1个回答

5

menuInfo.position解决了我的问题,感谢@Luksprog的帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接