我目前正在編寫一個簡單的應用程序,該應用程序使用2個與彈出菜單錨定的按鈕,該按鈕將在按下按鈕時顯示。這很簡單,但是我在使用onMenuItemClick()方法時遇到了麻煩,我想用它將該按鈕的文本更改爲單擊的菜單項。由於我有兩個彈出式菜單,每個都有3個項目,這是否意味着我將不得不在onMenuItemClick()中編寫6個不同的if語句,每個嘗試檢測哪個菜單項被點擊?還是有更簡單的方法來做到這一點,例如指定2 onMenuItemClick()方法,每個方法鏈接到單獨的2菜單?Android onMenuItemClick() - 檢測點擊了哪個菜單?
public class MainActivity extends AppCompatActivity implements OnMenuItemClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void showColourPopUpMenu(View v){
PopupMenu coloursPopUpMenu = new PopupMenu(this, v);
coloursPopUpMenu.setOnMenuItemClickListener(this);
coloursPopUpMenu.inflate(R.menu.colours_menu);
coloursPopUpMenu.show();
}
public void showShapePopUpMenu(View v){
PopupMenu shapesPopUpMenu = new PopupMenu(this, v);
shapesPopUpMenu.setOnMenuItemClickListener(this);
shapesPopUpMenu.inflate(R.menu.shape_menu);
shapesPopUpMenu.show();
}
@Override
public boolean onMenuItemClick(MenuItem item) {
//How to determine which menu clicked?
return false;
}
}
你可以去switch語句...請參考答案 –