/res に menu というフォルダを作成し、その中にxmlファイルを作成します
XML は以下のようにすればOKです
submenu を作りたいときは item の中に menu を入れてあげます。
XML リソース
- <?xml version="1.0" encoding="utf-8"?>
- <menu xmlns:android="http://schemas.android.com/apk/res/android">
- <item
- android:id="@+id/menu_item01"
- android:title="Menu01"/>
- <group
- android:id="@+id/menu_group01">
- <item
- android:icon="@drawable/icon"
- android:id="@+id/menu_item02"
- android:title="Menu02"/>
- </group>
- <item
- android:id="@+id/menu_item03"
- android:title="Menu03">
- <menu>
- <item
- android:id="@+id/submenu_item01"
- android:title="Sub_Menu01"/>
- <item
- android:id="@+id/submenu_item02"
- android:title="Sub_Menu02/">
- </menu>
- </item>
- </menu>
そして,
MenuInflater というクラスを使ってXMLを取得します
サンプルプログラム
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.Menu;
- import android.view.MenuInflater;
- import android.view.MenuItem;
- public class MenuXMLTest extends Activity {
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- }
- // Option Menu が最初に表示される時に1度だけ呼び出される
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- super.onCreateOptionsMenu(menu);
- // MenuInflater の取得
- MenuInflater menuInflater = getMenuInflater();
- // MenuInflater から XML の取得
- menuInflater.inflate(R.menu.menutest, menu);
- return true;
- }
- }
あとは普通に onOptionsItemSelected(MenuItem item) などをオーバーライドすればアイテムが選択された際の処理などもできます
プログラムを実行すると...
こんな感じ!
参考サイト
http://developer.android.com/intl/ja/guide/topics/resources/available-resources.html#menus
http://developer.android.com/intl/ja/reference/android/view/MenuInflater.html
0 件のコメント:
コメントを投稿