菜單

《MainActivity.java》

packagecom.example.menutest;

importandroid.os.Bundle;
importandroid.app.Activity;
importandroid.graphics.Color;
importandroid.view.Menu;
importandroid.view.MenuItem;
importandroid.view.SubMenu;
importandroid.widget.EditText;
importandroid.widget.Toast;

publicclassMainActivityextendsActivity{
//定義字體大小菜單項的標識
finalintFONT_10=0x111;
finalintFONT_12=0x112;
finalintFONT_14=0x113;
finalintFONT_16=0x114;
finalintFONT_18=0x115;
//定義普通菜單單項的標識
finalintPLAIN_ITEM=0x11b;
//定義字體顏色菜單項的標識
finalintFONT_RED=0x116;
finalintFONT_BLUE=0x117;
finalintFONT_GREEN=0x118;
privateEditTextedit;

@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit=(EditText)findViewById(R.id.txt);
}

@Override
publicbooleanonCreateOptionsMenu(Menumenu){
//--------------向menu中添加字體大小的子菜單-------
SubMenufontMenu=menu.addSubMenu("字體大小");
//設置菜單的圖標
fontMenu.setIcon(R.drawable.ic_launcher);
//設置菜單頭的圖標
fontMenu.setHeaderIcon(R.drawable.ic_launcher);
//設置菜單頭的標題
fontMenu.setHeaderTitle("選擇字體大小");
fontMenu.add(0,FONT_10,0,"10號字體");
fontMenu.add(0,FONT_12,0,"12號字體");
fontMenu.add(0,FONT_14,0,"14號字體");
fontMenu.add(0,FONT_16,0,"16號字體");
fontMenu.add(0,FONT_18,0,"18號字體");

//------------------向menu中添加普通菜單項----------------------
menu.add(0,PLAIN_ITEM,0,"普通菜單項");
SubMenucolorMenu=menu.addSubMenu("字體顏色");
colorMenu.setIcon(R.drawable.ic_launcher);
//設置菜單頭的圖標
colorMenu.setHeaderIcon(R.drawable.ic_launcher);
//何止菜單頭的標題
colorMenu.setHeaderTitle("選擇文字的顏色");
colorMenu.add(0,FONT_RED,0,"紅色");
colorMenu.add(0,FONT_GREEN,0,"綠色");
colorMenu.add(0,FONT_BLUE,0,"藍色");
returnsuper.onCreateOptionsMenu(menu);
}
/**
*菜單項被單擊後的回調方法
*
*/
@Override
publicbooleanonOptionsItemSelected(MenuItemitem){
//判斷單擊的是哪個菜單項,並有針對性地做出響應
switch(item.getItemId()){
caseFONT_10:
edit.setTextSize(10*2);
break;
caseFONT_12:
edit.setTextSize(12*2);
break;
caseFONT_14:
edit.setTextSize(14*2);
break;
caseFONT_16:
edit.setTextSize(16*2);
break;
caseFONT_18:
edit.setTextSize(18*2);
break;
caseFONT_RED:
edit.setTextColor(Color.RED);
break;
caseFONT_GREEN:
edit.setTextColor(Color.GREEN);
break;
caseFONT_BLUE:
edit.setTextColor(Color.BLUE);
break;
casePLAIN_ITEM:
Toasttoast=Toast.makeText(MainActivity.this,"您單擊了普通菜單項",Toast.LENGTH_SHORT);
toast.show();
break;
}
returnsuper.onOptionsItemSelected(item);
}

}

<activity_main.xml>

<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity">

<EditText
android:id="@+id/txt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=""
android:textSize="22sp"/>

</RelativeLayout>

爲菜單綁定監聽

這個簡單的說一說:

除了重寫onOptionsItemSelected(MenuItemitem)方法來爲菜單單擊時間編寫響應之外,android同樣允許開發者爲不同的慘淡分別綁定監聽器。方法:setOnMenuItemClickListener無需爲每個菜單指定id:如下:

publicbooleanonCreateOptionsMenu(Menumenu){

SubMenufontMenu=menu.addSubMenu("字體大小");

fontMenu.setHeaderTitle("選擇字體的大小");

MenuItemfont10=fontMenu.add("10號字體");

MenuItemfont12=fontMenu.add("12號字體");

//綁定監聽

font10.setOnMenuItemClickLIstener(newOnMenuItemClickListener{

publicbooleanonMenuItemClick(MenuItemitem){

edit.setTextSize(10*2);

returnfalse;

}

});

//其他一樣綁定監聽

照此做下去即可

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章