我需要更改菜单项列表(实际上隐藏一个或只是使其不可点击),具体取决于列表项长按。 我认为我可以在setOnItemLongClickListener中以某种方式做到但无法找到解决方案:
public void onCreate(Bundle savedInstanceState){
......
registerForContextMenu(listView);
listView.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> adapterView , View v,int position, long id) {
MyListItem item = (MyListItem) listView.getItemAtPosition(position);
listView.showContextMenu();
return true;
}
});
答案 0 :(得分:0)
刚发现只有具有全局变量的解决方案才能在OnItemLongClickListener中设置值取决于项目点击的值并在onCreateContextMenu中进行检查。也可以保存那里只是点击项目(MyListItem)。但我认为存在更优雅的解决方案。
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
if(!someGlobalVar){
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.list_item, menu);
}
...
or
if(!someGlobalVar){
menu.getItem(0).setVisible(someGlobalVar);
}
}