菜单的使用
菜单是屏幕中比较独立的一个元素,它和普通的控件略有不同,很多GUI系统都对菜单有单独的接口和运作方式。在Android中具有单独接口,用于在活动中使用菜单。
本例使用一个菜单来控制按钮的背景颜色,从其中可以了解如何在应用程序中使用菜单。

建立菜单和调用的代码
public class TestMenu extends Activity {
private static final String TAG = "TestMenu";
private Button mButton;
public static final int RED_MENU_ID = Menu.FIRST;
public static final int GREEN_MENU_ID = Menu.FIRST + 1;
public static final int BLUE_MENU_ID = Menu.FIRST + 2;
public TestMenu() { }
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.testmenu);
mButton = (Button) findViewById(R.id.color_button);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add(0, RED_MENU_ID, 0, R.string.red);
menu.add(0, GREEN_MENU_ID, 0, R.string.green);
menu.add(0, BLUE_MENU_ID, 0, R.string.blue);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case RED_MENU_ID:
mButton.setBackgroundColor(Color.RED);
mButton.setText(R.string.red);
return true;
case GREEN_MENU_ID:
mButton.setBackgroundColor(Color.GREEN);
mButton.setText(R.string.green);
return true;
case BLUE_MENU_ID:
mButton.setBackgroundColor(Color.BLUE);
mButton.setText(R.string.blue);
return true;
}
return super.onOptionsItemSelected(item);
}
}
使用菜单主要通过重载Activity中的两个函数来实现:
public boolean onCreateOptionsMenu(Menu menu)
public boolean onOptionsItemSelected(MenuItem item)
onCreateOptionsMenu()用于在建立菜单时进行设置建立时为每一个按钮设置ID,菜单项被选择时调用onOptionsItemSelected(),通过MenuItem类的getItemId()函数获得这个菜单的ID继续进行处理。
菜单类在Android中表示为android.view.Menu类。使用这个类可以进行一些更为细节的设置和操作。
abstract MenuItem add(int groupId, int itemId, int order, CharSequence title)
abstract MenuItem add(int groupId, int itemId, int order, int titleRes)
add()的第1、2个参数是整数值分别代表按钮项的组ID和选项ID第3个参数用于设置按钮上的文件。
浙公网安备 33010602011771号