MainActivity.java
public class MainActivity extends Activity {
private EditText mEditText;
final int MALE = 0x110;
final int FEMALE = 0x111;
final int RED = 0x112;
final int GREEN = 0x113;
final int BLUE = 0x114;
MenuItem[] items = new MenuItem[3];
String[] colorName = {"红","绿","蓝"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEditText = (EditText) findViewById(R.id.edit);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
SubMenu genderSubMenu = menu.addSubMenu("性别");
genderSubMenu.add(0, MALE, 0, "男");
genderSubMenu.add(0, FEMALE, 0, "女");
/**
* setGroupCheckable(int group, boolean checkable, boolean exclusive)
* checkable: Set to true to allow a check mark, false to disallow. The default is false.
* exclusive: If set to true, only one item in this group can be checked at a time
*/
genderSubMenu.setGroupCheckable(0, true, true);
SubMenu colorSubMenu = menu.addSubMenu("颜色");
items[0] = colorSubMenu.add(0, RED, 0, colorName[0]).setCheckable(true);
items[1] = colorSubMenu.add(0, BLUE, 0, colorName[1]).setCheckable(true);
items[2] = colorSubMenu.add(0, GREEN, 0, colorName[2]).setCheckable(true);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case MALE:
mEditText.setText("你选择了“男”");
item.setChecked(true);
break;
case FEMALE:
mEditText.setText("你选择了“女”");
item.setChecked(true);
break;
case RED:
if(item.isChecked()){
item.setChecked(false);
}else{
item.setChecked(true);
}
showColor();
break;
case GREEN:
if(item.isChecked()){
item.setChecked(false);
}else{
item.setChecked(true);
}
showColor();
break;
case BLUE:
if(item.isChecked()){
item.setChecked(false);
}else{
item.setChecked(true);
}
showColor();
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
private void showColor() {
// TODO Auto-generated method stub
String result = "你选择了";
for (int i = 0; i < items.length; i++) {
if(items[i].isChecked()){
result+=colorName[i];
}
}
mEditText.setText(result);
}
}
实现效果: