开发者

option item selection in Dialog menu

开发者 https://www.devze.com 2023-01-08 02:42 出处:网络
I have been running into some troubles recently and I think I need your help :). I am currently trying to show a menu on top of a dialog, I know that it could be far easier to launch a new activity ye

I have been running into some troubles recently and I think I need your help :). I am currently trying to show a menu on top of a dialog, I know that it could be far easier to launch a new activity yet doing so would compell me to store/pass a lot of data. I managed to show an optionmenu by writing a custom dialog and rewriting the oncreateOptionMenu method. My problem is I can't get any listener to these button, I tried to rewrite the onoptionitemselectedmethod but nothing happens. Ps: my dialog is nearly full screen so i can't see the activity dialog (i didn't find any put on top method)

开发者_开发技巧I would be glad to try any solution you could provide.

Thanks a lot

public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);
    menu.add(Menu.NONE,0,Menu.NONE,c.getString(R.string.home));
    menu.add(Menu.NONE,4,Menu.NONE,c.getString(R.string.report));
    return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
    super.onOptionsItemSelected(item);
    if(item.getItemId()==0){
        getOwnerActivity().startActivity(new Intent(c,Home.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
    }
    else
        if(l>1)
            getOwnerActivity().startActivity(new Intent(c,report.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
        else
            dismiss();
    return true;
}


Maybe this little snippet out of my app helps you:

private static final int REFRESH_ID = Menu.FIRST + 1;

public boolean onCreateOptionsMenu(Menu menu) {
  boolean result = super.onCreateOptionsMenu(menu);
  menu.add(0, REFRESH_ID, 0, R.string.menu_refresh).setIcon(R.drawable.and_refresh);
  return result;
}

public boolean onMenuItemSelected(int featureId, MenuItem item) {
  switch (item.getItemId()) {
    case REFRESH_ID: {
      // Do whatever you want here!
      return true;  
    }
  }
  return super.onMenuItemSelected(featureId, item);
}

As you can see, I've got constants for my menu-items. Those items get the Menu.First + n number as integer. For every item, I count it up. Easier, then change it everytime ;) And in the onMenuItemSelected you can switch those constants easily. Hope that helps!

0

精彩评论

暂无评论...
验证码 换一张
取 消