菜单

《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;

}

});

//其他一样绑定监听

照此做下去即可

}

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