Как создать контекстное меню, используя файл XML? - PullRequest
18 голосов
/ 07 апреля 2010

Я использую файл XML для создания контекстного меню для моего ListView.(Пожалуйста, смотрите ниже).Я также хочу установить заголовок для этого контекстного меню.Я прочитал (http://www.mail-archive.com/android-developers@googlegroups.com/msg43062.html), что я могу использовать menu.setHeaderTitle (myContextMenuTitle) в методе onCreateContextMenuНо мне нужно установить это в файле 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);
 }

Это мой onCreate Метод:

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

  registerForContextMenu(getListView());

  ...
 }

Ответы [ 2 ]

18 голосов
/ 31 августа 2011

Вы можете вызвать метод 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);
 }     
11 голосов
/ 07 апреля 2010

Вы должны сделать это так, как вы это делаете в настоящее время.

...