配列をクリアするメソッドを呼び出す 1 つのボタンを持つ単純なメニューを作成しようとしています。必要なのは 1 つのボタンだけなので、xml は使用したくありません。
このようなもの -
public boolean onCreateOptionsMenu(Menu menu) {
button "Clear Array";
onClick{// run method that wipes array};
return true;
}
ありがとうございました
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;
}
}
このアプローチを使用することで、不要なオブジェクト(リスナー)の作成を回避できます。また、このコードは読みやすく、理解しやすいと思います。
このようなものが機能する可能性があります:
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;
}
Menu
add()
MenuItemを追加できる便利なメソッドを提供します。だから私たちは1つを作ります。次に、にを割り当て、それをOnMenuItemClickListener
オーバーライドMenuItem
しonMenuItemClick()
て、実行したいことを実行します。