在我的soundboard應用程序中,我使用此代碼創建了上下文菜單。如何判斷哪個按鈕訪問了上下文菜單
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.setHeaderTitle("Choose an option");
menu.add(0, v.getId(), 0, "Save as ringtone");
menu.add(0, v.getId(), 0, "Save as Notification");
menu.add(0, v.getId(), 0, "Save as Alarm");
menu.add(0, v.getId(), 0, "Exit Menu");
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
// Global.currentsound = info.id;
if(item.getTitle()=="Save as ringtone"){function1(item.getItemId());}
else if(item.getTitle()=="Save as Notification"){function2(item.getItemId());}
else if(item.getTitle()=="Save as Alarm"){function3(item.getItemId());}
else {return false;}
return true;
}
,並呼籲這樣
按鈕c菜單=(按鈕)findViewById(R.id.s1sound1)的按鈕;
registerForContextMenu(cmenu);
現在我想將每個按鈕的信息傳遞給代碼中的函數,以根據按下哪個按鈕來設置聲音。我怎麼做,而不會爲每個按鈕創建一個單獨的上下文菜單,這將是瘋狂的。
感謝
該文檔清楚地表明,在'public void onCreateContextMenu(ContextMenu菜單,視圖v, ContextMenuInfo menuInfo)'中接收到的'View v'是正在構建上下文菜單的視圖。你有沒有看到文檔?所以你像'v.getId()'一樣檢查視圖的id,現在你知道哪個按鈕/視圖正在構建你的上下文菜單。 – Varun 2011-05-22 18:42:48