在我的應用程序中,我動態地創建了一些視圖,並且他們都註冊了相同的上下文菜單。如何獲取從哪個上下文菜單選項被選中的視圖?
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() – koutuk 2014-12-04 12:36:17
@koutuk:no ...中查看編輯後的代碼。以及如何獲得viewClicked?它沒有初始化... – micnyk 2014-12-04 12:41:35
final ViewGroup viewGroup =(ViewGroup)((ViewGroup)this \t .findViewById(android.R.id.content))。getChildAt(0); \t \t viewGroup.addView(v);試試這個添加View然後爲每個視圖設置CLICK listner – koutuk 2014-12-04 12:49:35