【发布时间】:2016-02-08 14:11:42
【问题描述】:
我目前正在编写一个简单的应用程序,该应用程序使用 2 个按钮锚定弹出菜单,当按下按钮时将显示这些按钮。这很简单,但是我在使用 onMenuItemClick() 方法时遇到了问题,我想用它来将按钮的文本更改为被点击的菜单项。
因为我有两个弹出菜单,每个都有 3 个项目,这是否意味着我必须在 onMenuItemClick() 中编写 6 个不同的 if 语句,每个语句都试图检测从哪个菜单中单击了哪个项目?还是有更简单的方法,例如指定 2 个 onMenuItemClick() 方法,每个方法链接到单独的 2 个菜单?
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语句...请参考答案
标签: android button view menu popup