【发布时间】:2015-02-02 08:04:42
【问题描述】:
在我的应用中,我动态创建了一些视图,并且它们都注册了相同的上下文菜单。
for(int j = 0; j < CELLS_IN_ROW; j++) {
MyView v = new MyView();
((Activity) context).registerForContextMenu(v);
}
/* ----------------------------------------------- */
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.cell_context_menu, menu);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.myOption:
MyView viewClicked = ?????
doSomethingDependingOnView(viewClicked);
return true;
default:
return super.onContextItemSelected(item);
}
}
但是当单击菜单选项时,我想根据单击哪个视图打开上下文菜单来执行不同的操作。我该怎么做?
【问题讨论】:
-
MyView v = new MyView(); v.setID(j);您将从 viewClicked.getId() 获取 Switch 语句中的 id
-
@koutuk:不...查看编辑后的代码。以及如何获得 viewClicked?它没有初始化...
-
final ViewGroup viewGroup = (ViewGroup) ((ViewGroup) this .findViewById(android.R.id.content)).getChildAt(0); viewGroup.addView(v);试试这个来添加视图然后为每个视图设置 CLICK 列表
标签: java android menu contextmenu