“对话框”菜单中的选项项目选择

时间:2010-07-19 13:18:34

标签: android

我最近遇到了一些麻烦,我想我需要你的帮助:)。 我目前正在尝试在对话框顶部显示一个菜单,我知道启动一个新活动可能要容易得多,但这样做会使我存储/传递大量数据。 我设法通过编写自定义对话框并重写oncreateOptionMenu方法来显示optionmenu。 我的问题是我无法获得这些按钮的任何监听器,我试图重写onoptionitemselected方法但没有任何反应。 Ps:我的对话框几乎全屏,所以我看不到活动对话框(我没有找到任何顶部方法)

我很乐意尝试您提供的任何解决方案。

非常感谢

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;
}

1 个答案:

答案 0 :(得分:1)

也许我的应用程序中的这个小片段可以帮助您:

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);
}

如你所见,我的菜单项有常量。这些项目将Menu.First + n数字作为整数。对于每件商品,我都会数出来。更容易,然后每次更改;) 在onMenuItemSelected中,您可以轻松切换这些常量。 希望有所帮助!