Cześć,
mam taki kod przepisany z książki:
public class MyMenuActivity extends Activity {
Menu myMenu = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu){
super.onCreateOptionsMenu(menu);
this.myMenu = menu;
addRegularMenuItems(menu);
add3SecondaryMenuItems(menu);
return true;
}
private void addRegularMenuItems(Menu menu) {
int base = Menu.FIRST; // wartość wynosi 1;
menu.add(base, base, base, "Dodaj");
menu.add(base, base+1, base+1, "element2");
menu.add(base, base+2, base+2, "Wyczyść");
menu.add(base, base+3, base+3, "ukryj drugorzędny");
menu.add(base, base+4, base+4, "pokaż drugorzędny");
menu.add(base, base+5, base+5, "włącz drugorzędny");
menu.add(base, base+6, base+6, "wyłącz drugorzędny");
menu.add(base, base+7, base+7, "zaznacz drugorzędny");
menu.add(base, base+8, base+8, "odznacz drugorzędny");
}
private void add3SecondaryMenuItems(Menu menu) {
int base = Menu.CATEGORY_SECONDARY;
menu.add(base, base+1, base+1, "drugorz. elem 1");
menu.add(base, base+2, base+2, "drugorz. elem 2");
menu.add(base, base+3, base+3, "drugorz. elem 3");
}
@Override
public boolean onOptionsItemSelected(MenuItem item){
if(item.getItemId() == 1)
appendText("\nwitaj");
else if(item.getItemId() == 2)
appendText("\nelement2");
else if(item.getItemId() == 3)
emptyText();
else if(item.getItemId() == 4){
// ukryj drugorzędny
this.appendMenuItemText(item);
this.myMenu.setGroupVisible(Menu.CATEGORY_SECONDARY, false);
}
else if(item.getItemId() == 5){
//pokaż drugorzędny
this.appendMenuItemText(item);
this.myMenu.setGroupVisible(Menu.CATEGORY_SECONDARY, true);
}
else if(item.getItemId() == 6){
//włącz drugorzędny
this.appendMenuItemText(item);
this.myMenu.setGroupEnabled(Menu.CATEGORY_SECONDARY, true);
}
else if(item.getItemId() == 7){
//wyłącz drugorzędny
this.appendMenuItemText(item);
this.myMenu.setGroupEnabled(Menu.CATEGORY_SECONDARY, false);
}
else if(item.getItemId() == 8){
// zaznacz drudorzędny
this.appendMenuItemText(item);
this.myMenu.setGroupCheckable(Menu.CATEGORY_SECONDARY, true, false);
}
else if(item.getItemId() == 9){
// odznacz drugorzędny
this.appendMenuItemText(item);
this.myMenu.setGroupCheckable(Menu.CATEGORY_SECONDARY, false, false);
}
return true;
}
private void appendMenuItemText(MenuItem menuItem) {
String title = menuItem.getTitle().toString();
TextView tv = (TextView)this.findViewById(R.id.textViewId);
tv.setText(tv.getText() + "\n" + title);
}
private void emptyText() {
TextView tv = (TextView)this.findViewById(R.id.textViewId);
tv.setText("");
}
private void appendText(String text) {
TextView tv = (TextView)this.findViewById(R.id.textViewId);
tv.setText(tv.getText() + text);
}
}
Wyświetla Menu i podmenu. Jednak nie wiem i nie mogę wymyślić jak dostać się do tego podmenu.
Jest metoda getGroupId() ale nie wiem jak z niej skorzystać aby klikając na element podmenu wywołać jakąś akcję.
Chodzi o te trzy kontrolki z metody add3SecondaryMenuItems()
Czy wiecie jak to zrobić?
Edit:
Odp. jest prosta:
else {this.appendMenuItemText(item); }