我正在尝试使用一个按钮创建一个简单的菜单,该按钮将调用方法来清除数组.我不想使用xml,因为我只需要一个按钮.
像这样的东西 -
public boolean onCreateOptionsMenu(Menu menu) {
button "Clear Array";
onClick{// run method that wipes array};
return true;
}
Run Code Online (Sandbox Code Playgroud)
谢谢
Pau*_*aul 75
A-C的方法有效,但你应该避免手动设置点击监听器.特别是当你有多个菜单项.
我更喜欢这种方式:
private static final int MENU_ITEM_ITEM1 = 1;
...
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(Menu.NONE, MENU_ITEM_ITEM1, Menu.NONE, "Item name");
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case MENU_ITEM_ITEM1:
clearArray();
return true;
default:
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
通过使用这种方法,您可以避免创建不必要的对象(侦听器),并且我也发现此代码更易于阅读和理解.
A--*_*--C 27
像这样的东西可能会起作用:
public boolean onCreateOptionsMenu(Menu menu) {
MenuItem item = menu.add ("Clear Array");
item.setOnMenuItemClickListener (new OnMenuItemClickListener(){
@Override
public boolean onMenuItemClick (MenuItem item){
clearArray();
return true;
}
});
return true;
}
Run Code Online (Sandbox Code Playgroud)
Menu为我们提供了一个方便的方法,add()它允许您添加一个MenuItem.所以我们制作一个.然后我们分配OnMenuItemClickListener到MenuItem并覆盖其onMenuItemClick()做我们想做的事情.
Vik*_*kas 18
以编程方式,我能够使用以下代码创建一个简单的菜单.
private final int MenuItem_EditId = 1, MenuItem_DeleteId = 0;
@Override
public boolean onCreateOptionsMenu(Menu menu){
MenuItem edit_item = menu.add(0, MenuItem_EditId, 0, R.string.edit);
edit_item.setIcon(R.drawable.edit);
edit_item.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM);
MenuItem delete_item = menu.add(0, MenuItem_DeleteId, 1, R.string.edit);
delete_item.setIcon(R.drawable.delete);
delete_item.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM);
return super.onCreateOptionsMenu(menu);
}
Run Code Online (Sandbox Code Playgroud)
在这里,我使用单击侦听器动态实现了弹出菜单。
Dynamic_PopUpMenu.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PopupMenu menu = new PopupMenu(DialogCheckBox.this, v);
menu.getMenu().add("AGIL"); // menus items
menu.getMenu().add("Dash"); // menus items
menu.getMenu().add("AGILarasan");
menu.getMenu().add("Arasan");
menu.show();
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46104 次 |
| 最近记录: |