实现listview的上下文菜单?

3zwjbxry  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(549)

我正在为一个列表做一个上下文菜单。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" 
android:orientation="vertical" >

<ListView 
        android:id="@+id/list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
</ListView>
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // setContentView(R.layout.activity_main);
    content = new ArrayList<HashMap<String,String>>();

    ListView list = (ListView)findViewById(R.id.list);
    registerForContextMenu(list);
}

当它到达 registerForContextMenu(list); ,我得到一个运行时错误。
另一件事,当我使用 android:id="@androidid/list" 在xml中,如何引用列表?我试过listview list = (ListView)findViewById(android.R.id.list); ,但注册到上下文菜单时仍会出错。

a0x5cqrl

a0x5cqrl1#

检查以下代码

@Override  
public void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);  
    setContentView(R.layout.main);  

    lview3 = (ListView) findViewById(R.id.listView3);  

    adapter = new ListviewAdapter(this, month, desc, icons);  
         // set here your listview adapter value
    lview3.setAdapter(adapter);  

    //for context menu
    registerForContextMenu(lview3);

}

//start from here context menu//

@Override
public void onCreateContextMenu(ContextMenu menu, View v,
        ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    menu.setHeaderTitle("select");
    menu.add(0, v.getId(), 0, "Action 1");
    menu.add(0, v.getId(), 0, "Action 2");
    menu.add(0, v.getId(), 0, "Action 3");
}

@Override
public boolean onContextItemSelected(MenuItem item) {
    if (item.getTitle() == "Action 1") {
        //
    } else if (item.getTitle() == "Action 2") {
        //
    } else {
        return false;
    }
    return true;
}

祝你好运。

相关问题