web-dev-qa-db-ja.com

XMLファイルを使用してコンテキストメニューを作成するにはどうすればよいですか?

ListViewのコンテキストメニューを作成するためにXMLファイルを使用しています。 (下記を参照してください)。このコンテキストメニューのヘッダーも設定したいと思います。 onCreateContextMenuメソッドでmenu.setHeaderTitle(myContextMenuTitle)を使用できることを( http://www.mail-archive.com/[email protected]/msg43062.html )読みました。しかし、これを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());

  ...
 }
18
Vasu

あなたは現在それをしている方法でそれをしなければなりません。

11
Robby Pond

、menuオブジェクトで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);
 }     
18
Ashish Saini