Androidのコンテキストメニュー、オプションメニュー、サブメニュー
6230 ワード
メニューOptionMenu ContextMenu SubMenu;1、オプションメニュー:OptionMenu注意:一般的なオプションメニュー:最大2行、各行3つのメニュー項目があり、6つ余ったときやmoreが現れたら、クリックして表示する.作成:onCreateOptionsMenu()メソッドを書き換える.イベント:onOptionsItemSelected()を書き換えます.方法2、コンテキストメニュー:ContextMenu説明:オプションメニューはActivityにサービスし、コンテキストメニューはあるViewオブジェクトに登録する.ヒント:ContextMenuのタイトルとアイコンを指定できますが、メニューオプションにはアイコンを添付できません.作成:onCreateContextMenu()を書き換えます.イベント:onContextItemSelected()を書き換えます.登録:registerForContextMenu()3、サブメニュー:SubMenuの説明:サブメニューはサブメニューをネストできない.すなわちandroidのメニューは2階しかない.ヒント:サブメニュー項目は表示アイコンの作成をサポートしていません:addSubMenu()を使用します;サブメニューのあるメニュー項目を追加
事例:コードで各種メニューを実現
事例:コードで各種メニューを実現
package com.example.menu;
import android.app.Activity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.view.View;
import android.widget.RelativeLayout;
import android.widget.Toast;
public class MainActivity extends Activity {
private RelativeLayout myLayout; //
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myLayout = (RelativeLayout) findViewById(R.id.myLayout); //
registerForContextMenu(myLayout); //
}
/*********************************** Start OptionMenu ************************************************/
//
public boolean onCreateOptionsMenu(Menu menu) {
/*
* : 1: 2: ID , 3: 4:
*/
MenuItem addMenuItem = menu.add(1, 0, 0, " "); //
addMenuItem.setIcon(R.drawable.icon_download2); //
MenuItem uppMenuItem = menu.add(1, 1, 1, " ");
uppMenuItem.setIcon(R.drawable.icon_download2);
/* */
SubMenu delSubMenu = menu.addSubMenu(1, 1, 1, " "); // menu
delSubMenu.setHeaderIcon(R.drawable.icon_download2); //
delSubMenu.setHeaderTitle(" ");
delSubMenu.setIcon(R.drawable.icon_download2); //
delSubMenu.add(2, 11, 11, " "); //
delSubMenu.add(2, 12, 12, " ");
SubMenu showSubMenu = menu.addSubMenu(1, 2, 2, " "); //
showSubMenu.setIcon(R.drawable.icon_download2); //
showSubMenu.setHeaderIcon(R.drawable.icon_download2); //
showSubMenu.setHeaderTitle(" "); //
showSubMenu.add(2, 21, 21, " ");
showSubMenu.add(2, 21, 22, " ");
return true;
}
//
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case 0:
Toast.makeText(MainActivity.this, " " + item.getTitle() + " ",
Toast.LENGTH_LONG).show();
break;
case 1:
Toast.makeText(MainActivity.this, " " + item.getTitle() + " ",
Toast.LENGTH_LONG).show();
break;
default:
Toast.makeText(MainActivity.this, " " + item.getTitle() + " ",
Toast.LENGTH_LONG).show();
break;
}
return super.onOptionsItemSelected(item);
}
/**
* : 1、back 2、menu 3、
*/
public void onOptionsMenuClosed(Menu menu) {
super.onOptionsMenuClosed(menu);
Toast.makeText(MainActivity.this, " ...", Toast.LENGTH_LONG)
.show();
}
/**
*
*
* @return false : menu ,onCreateOptionsMenu
*/
public boolean onPrepareOptionsMenu(Menu menu) {
Toast.makeText(MainActivity.this, "onPrepaareOptionsMenu() ...",
Toast.LENGTH_LONG).show();
return super.onPrepareOptionsMenu(menu);
}
/***************************************** End OptionMenu **************************************************************/
/***************************************** Start ContextMenu **************************************************/
//
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.setHeaderIcon(R.drawable.icon_download2); //
menu.setHeaderTitle(" "); //
MenuItem oneMenuItem = menu.add(Menu.NONE, 0, 0, " "); //
MenuItem twoMenuItem = menu.add(Menu.NONE, 1, 1, " "); //
}
//
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {
case 0:
Toast.makeText(MainActivity.this, " " + item.getTitle() + " ",
Toast.LENGTH_LONG).show();
myLayout.setBackgroundColor(getResources().getColor(R.color.back)); //
break;
case 1:
Toast.makeText(MainActivity.this, " " + item.getTitle() + " ",
Toast.LENGTH_LONG).show();
myLayout.setBackgroundColor(getResources().getColor(R.color.red));//
break;
}
return super.onContextItemSelected(item);
}
// ..
public void onContextMenuClosed(Menu menu) {
super.onContextMenuClosed(menu);
Toast.makeText(MainActivity.this, " ...", Toast.LENGTH_LONG)
.show();
}
/***************************************** End ContextMenu ***********************************************************/
/***************************************** Start SubMenu ********************************************************/
// , ....
/***************************************** End SubMenu ****************************************************************/
}