【问题标题】:How to create a menu programmatically in Android?如何在 Android 中以编程方式创建菜单?
【发布时间】:2011-11-11 05:57:58
【问题描述】:

现在我想在屏幕底部添加一个菜单。 我写了很多关于但仍然没有得到如何做到这一点。 我的主要问题是我的主页上没有 xml 文件。 它的外观是这样的:

   public class start  extends ListActivity {
        static final String[] COUNTRIES = new String[] {
        "NEWS1", "NEWS2","RADIO"};
 Intent intent;
 public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);

      setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, COUNTRIES));

      ListView lv = getListView();
      lv.setTextFilterEnabled(true);

      lv.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {
if (((TextView) view).getText().equals("NEWS1")){
 intent = new Intent(start.this,  NewsActivity.class);

如何添加带有操作的菜单。 请给我一个例子。 谢谢

【问题讨论】:

  • 选项卡菜单还是按手机上的菜单按钮时的菜单?
  • 手机上的菜单按钮

标签: android xml layout menu


【解决方案1】:

使用此代码动态添加菜单

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

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);

        menu.add(0, NEW_MENU_ID, 0, "New"); 

        return true;
    }

【讨论】:

  • 这里的public boolean onPrepareOptionsMenu(Menu menu)方法有什么用?删除它没有任何区别。
【解决方案2】:

如果您的主要活动中没有 XML 文件,那很好。您仍然可以按照以下步骤向其添加菜单 ->

  1. 创建一个 android XML 文件并选择 menu 作为类型(它将存储在 res 文件夹的 menu 子文件夹下)。
  2. 现在在你的主要活动代码中添加这两个方法 ->

    public boolean onCreateOptionsMenu(Menu menu){
        getMenuInflater().inflate(R.menu.yourmenuxmlfilename, menu);
        return true;
    }
    public boolean onOptionsItemSelected(MenuItem item){
        switch(item.getItemId){
            case R.id.item1:
                // what you want to do with first button
                break;
            case .....
                break;
        }
        return true;
    }
    

【讨论】:

  • 这个方法 onCreateOptionsMenu(Menu menu) 我需要从哪里调用它(从什么方法调用它?)???以及如何向菜单中添加项目?
  • 只需将此方法添加到您的开始类中,但请记住不要在您的 onCreate() 方法中添加此方法,单独添加它们。并转到菜单 XML 文件以向其中添加项目。这很简单。
  • 感谢工作,但这些项目是黑色的,我无法在黑色地面上的黑色字体上看到它们
  • 如果我的回答对您有帮助,请点赞我的回答。关于黑色背景,您可以向项目添加图标,以便您可以看到它们
【解决方案3】:

对于您只需添加的上下文菜单

            getListView().setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

                @Override
                public void onCreateContextMenu(ContextMenu menu, View v,
                        ContextMenuInfo menuInfo) {

                    menu.setHeaderTitle("Options");
                    menu.add("Option1");
                    menu.add("Option2");
                    menu.add("Option3");

                }
            });

上下文菜单仅在长按列表项时出现

【讨论】:

    【解决方案4】:

    对于选项菜单

    创建一个您在选项菜单中扩展的 android xml 文件

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    
        new MenuInflater(this).inflate(R.layout.options, menu);
        return super.onCreateOptionsMenu(menu);
    }
    
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        //and your action for menu item click goes here
    

    【讨论】:

      猜你喜欢
      • 2013-02-17
      • 2012-09-20
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 2017-12-28
      • 2013-10-10
      • 1970-01-01
      • 2011-09-21
      相关资源
      最近更新 更多