代码之家  ›  专栏  ›  技术社区  ›  madprops

使用ImageButton打开上下文菜单

  •  2
  • madprops  · 技术社区  · 12 年前

    由于某些原因,我无法创建上下文菜单。

    我在onCreate中有以下行:

    btnMenu = (ImageButton) findViewById(R.id.btnMenu);
    
    registerForContextMenu(btnMenu);
    

    并添加了方法:

    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.mainmenu, menu);
    }
    

    我在res/menu中有一个xml文件,名为mainmenu:

    <?xml version="1.0" encoding="utf-8"?>
    
    <menu xmlns:android="http://schemas.android.com/apk/res/android">
    
        <item android:id="@+id/new_game"
        android:title="item1"
        />
        <item android:id="@+id/help"
        android:title="item2" 
        />
    
    </menu>
    

    但当我点击图像按钮时,什么也没有出现。

    感谢您的帮助。

    1 回复  |  直到 12 年前
        1
  •  7
  •   nistv4n    12 年前

    我试过你的代码,效果很好。请注意,您需要长按视图(在本例中为按钮),而不是短按。如果您想显示上下文菜单进行短时间单击,请尝试以下操作:

    Button b = (Button) findViewById(R.id.button1);
    
    registerForContextMenu(b);
    
    b.setOnClickListener(new Button.OnClickListener() {
    @Override
    public void onClick(View v) {
        v.showContextMenu();
    }   
    });