android.view.Menuを使用します
さらに、Activity クラスの
- public boolean onCreateOptionsMenu(Menu menu)
- public boolean onPrepareOptionsMenu(Menu menu)
- public boolean onOptionsItemSelected(MenuItem item)
- public boolean onMenuOpened(int featureId, Menu menu)
というわけで、Menu をいじってみた
サンプルプログラム
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MenuTest extends Activity {
private static final int MENU_ID1 = Menu.FIRST;
private static final int MENU_ID2 = Menu.FIRST + 1;
private static final int MENU_ID3 = Menu.FIRST + 2;
private static final int SUBMENU_ID1 = Menu.FIRST + 21;
private static final int SUBMENU_ID2 = Menu.FIRST + 22;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
((Button) findViewById(R.id.Button)).setOnClickListener(
new OnClickListener() {
public void onClick(View v) {
// Menu の表示
openOptionsMenu();
}
}
);
}
// Option Menu が最初に表示される時に1度だけ呼び出される
@Override
public boolean onCreateOptionsMenu(Menu menu) {
boolean ret = super.onCreateOptionsMenu(menu);
// Menu にアイテムを追加
menu.add(Menu.NONE, MENU_ID1, Menu.NONE, "Menu1");
// Menu に Icon 付きアイテムを追加
menu.add(Menu.NONE, MENU_ID2, Menu.NONE, "Menu2").setIcon(R.drawable.icon);
// SubMenu を追加
SubMenu sMenu = menu.addSubMenu(Menu.NONE, MENU_ID3, 3, "Menu3");
sMenu.add(Menu.NONE, SUBMENU_ID1, Menu.NONE, "SubMenu1");
sMenu.add(Menu.NONE, SUBMENU_ID2, Menu.NONE, "SubMenu2");
// Menu にショートカットキーを設定
menu.findItem(MENU_ID1).setAlphabeticShortcut('a');
menu.findItem(MENU_ID2).setAlphabeticShortcut('1');
menu.findItem(MENU_ID3).setAlphabeticShortcut('s');
return ret;
}
// Option Menu が表示される時の動作
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
return super.onPrepareOptionsMenu(menu);
}
// Option Menu のアイテムが選択された時の動作
@Override
public boolean onOptionsItemSelected(MenuItem item) {
boolean ret = super.onOptionsItemSelected(item);
// 選ばれたアイテムの ID を取得
switch(item.getItemId()) {
case MENU_ID1: // Menu1
return true;
case MENU_ID2: // Menu2
return true;
case SUBMENU_ID1: // Submenu1
return true;
default:
}
return ret;
}
// Option Menu が開かれた時の動作
@Override
public boolean onMenuOpened(int featureId, Menu menu) {
return super.onMenuOpened(featureId, menu);
}
}
プログラムを実行すると...
SubMenu は...
こんな感じ!
参考サイト
http://developer.android.com/intl/ja/reference/android/view/Menu.html
http://developer.android.com/intl/ja/reference/android/app/Activity.html


0 件のコメント:
コメントを投稿