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

我正在使用XML文件为我的ListView创build上下文菜单。 (请参阅下文)。 我也想为这个上下文菜单设置一个头。 我阅读(在http://www.mail-archive.com/android-developers@googlegroups.com/msg43062.html ),我可以在onCreateContextMenu方法中使用menu.setHeaderTitle(myContextMenuTitle)。 但是我需要在XML文件中设置它。 我怎样才能做到这一点?

以下是onCreateContextMenu方法的代码,纠正我,如果我做错了什么。这是我的context_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); } 

这是我的创build方法:

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

Solutions Collecting From Web of "如何使用XML文件创build上下文菜单?"

你必须按照你现在这样做的方式去做。

你可以在菜单对象中调用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); }