java - 如何从菜单按键调用上下文菜单?

标签 java android

这是我到目前为止的代码...

@Override
public boolean onKeyDown(int keycode, KeyEvent event ) {


    if(keycode == KeyEvent.KEYCODE_MENU)
    {
        // need to open the menu from here.
        //registerForContextMenu(); ???
        //openContextMenu(); ???

    }
 return super.onKeyDown(keycode,event); 
}


     @Override  
     public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {  
     super.onCreateContextMenu(menu, v, menuInfo);  
         menu.setHeaderTitle("Context Menu");  
         menu.add(0, v.getId(), 0, "Action 1");  
         menu.add(0, v.getId(), 0, "Action 2");
     }

          @Override  
          public boolean onContextItemSelected(MenuItem item) {  
              if(item.getTitle()=="Action 1"){function1(item.getItemId());}  
              else if(item.getTitle()=="Action 2"){function2(item.getItemId());}  
              else {return false;}  
          return true;  
          }  

          public void function1(int id){  
              Toast.makeText(this, "function 1 called", Toast.LENGTH_SHORT).show();  
          }  
          public void function2(int id){  
              Toast.makeText(this, "function 2 called", Toast.LENGTH_SHORT).show();  
          }  

但是我真的不知道按下菜单键后如何打开这个菜单。

有什么建议吗?

谢谢!


编辑,需要菜单如下所示:

enter image description here

谢谢,大部分工作,只有菜单看起来像标准选项菜单,但我真的需要它像上下文菜单,见上面。有什么办法让它看起来像这样吗?

最佳答案

上下文菜单用于长按小部件。将 onCreateContextMenu() 更改为 onCreateOptionsMenu() 并将 onContextItemSelected() 更改为 onOptionsItemSelected() (并摆脱onKeyDown()) 以通过 MENU 按钮触发选项菜单。

关于java - 如何从菜单按键调用上下文菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6998052/

相关文章:

java - Spring Boot执行器健康端点+动态弹性4j断路器

java - jdbcTemplate batchUpdate 抛出 java.lang.ClassCastException : java. util.ArrayList 无法转换

java - 在 Android SQLite 中将许多嵌套的 JSON 对象和数组存储为数据结构的好方法?

java - 在 AltBeacon 库中,我看到 iBeacons 每秒刷新多次的原因是什么?

java - 缩短android中的进度条代码

java - FLAG_ACTIVITY_NEW_TASK不打开以前的 Activity ,而仅在新安装apk时打开

java - 将平面列表元素转换为java中的嵌套集合

java - 如何在java中创建一个从父构造函数中少一个构造函数参数的子类

java - 以 3.5 字节存储纬度

java - 使用 onClickListener 动态地将多个表行添加到表布局中