如何使用XML文件创建上下文菜单?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (57)

我使用XML文件为ListView创建上下文菜单。我还想为这个上下文菜单设置一个标题。但是,我需要在XML文件中设置它。我怎么能做到这一点?

下面是onCreateContextMenu方法的代码,如果我做错了什么,请纠正我。这是我的背景[医]menu.xml文件:

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

这是我的onCreateContextMenu方法:

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

这是我的onCreate方法:

@Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  //  extras = getIntent().getExtras();

  registerForContextMenu(getListView());

  ...
 }
提问于
用户回答回答于
用户回答回答于

你可以在,menu object中调用setHeaderTitle("mytitle")方法,菜单对象。在覆盖方法中,菜单对象作为OnCreateContextMenu

方法。就像这样:

 @Override
 public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
   super.onCreateContextMenu(menu, v, menuInfo);
   menu.setHeaderIcon(R.drawable.icon);
   menu.setHeaderTitle("Share Menu.");
   MenuInflater inflater = getMenuInflater();

   inflater.inflate(R.menu.contextmenu, menu);
 }     

扫码关注云+社区

领取腾讯云代金券