我一直在开发Android应用程序,每个视图有3个 ListView
和一个 ContextMenu
:
@Override
public void onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo info) {
menu.add(Menu.NONE, CONTEXT_MENU_ITEM_DELETE, Menu.NONE, "Delete");
super.onCreateContextMenu(menu, view, info);
}
注册点击捕获:
this.registerForContextMenu(mFirstCategory);
this.registerForContextMenu(mSecondCategory);
this.registerForContextMenu(mMainCategory);
mFirstCategory, mSecondCategory, mMainCategory are ListViews . 我也有点击行的方法:
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info=(AdapterContextMenuInfo)item.getMenuInfo();
String name = null;
switch (info.targetView.getId()) {
case (R.id.listViewFirst): name="First";
case (R.id.listViewSecond): name="Second";
case (R.id.listViewMain): name="Main";
}
Toast.makeText(this, name+"_"+String.valueOf(info.position), Toast.LENGTH_LONG).show();
return super.onContextItemSelected(item);
}
我需要定义单击 ListView
和 ListView
点击的位置(行) . 我的"switch/case"块不起作用 . 请告诉我,我该怎么办?
2 回答
targetView是ListView中的单行 . 它的父级将是你的ListView:
然后做:
不确定这是你定义为"switch/case block not working",但似乎你忘了在每个
case
之后调用break;
- 所以name
将永远是Main
.