public class GoogleAndroidDevelop_menuActivity extends Activity { public static final int ITEM0 = Menu.FIRST; public static final int ITEM1 = Menu.FIRST + 1; Button button1; Button button2; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); button1 = (Button) findViewById(R.id.bt1); button2 = (Button) findViewById(R.id.bt2); button1.setVisibility(View.INVISIBLE); button2.setVisibility(View.INVISIBLE); } @Override public boolean onCreateOptionsMenu(Menu menu){ super.onCreateOptionsMenu(menu); menu.add(0, ITEM0, 0, "显示按钮一"); menu.add(0, ITEM1, 1, "显示按钮二"); //menu.findItem(ITEM1); 作用类似于 findViewById() //比如:你有3个menu选项 想得到第二个 就通过这个方法 menu.findItem(ITEM1); return true; } public boolean onOptionsItemSelected(MenuItem item){ switch(item.getItemId()){ case ITEM0 : actionClickMenuItem1(); break; case ITEM1 : actionClickMenuItem2(); break; } return true; } private void actionClickMenuItem1(){ setTitle("Button1可见"); button1.setVisibility(View.VISIBLE); button2.setVisibility(View.INVISIBLE); } private void actionClickMenuItem2(){ setTitle("Button2可见"); button1.setVisibility(View.INVISIBLE); button2.setVisibility(View.VISIBLE); } }
看到很多程序中习惯public static int
MENU_TEST_1 = Menu.FIRST;
public static
int MENU_TEST_2 =
Menu.FIRST+1;
这样处理。
但是测试发现即使用其他的常量替代Menu.FIRST也不会影响实际的结果。
使用Menu.FIRST的好处---
程序封装的变量 用起来不占内存 程序读的快 不容易出错