public class MainActivity extends Activity {
private TextView text_show;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text_show = (TextView) this.findViewById(R.id.text_show);
// 建立上下文菜单时:要先注册,而选项菜单就不用注册
registerForContextMenu(text_show);//注册上下文菜单,长按TextView显示出来
}
// 上下文菜单建立
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
// 第一种:静态menu(菜单)的生成方法,XML文件中建立
getMenuInflater().inflate(R.menu.menu, menu);
// 第二种:动态建立菜单:用代码建立
// menu.add(Menu.NONE, 1, Menu.NONE, "选项一");
// menu.add(Menu.NONE, 2, Menu.NONE, "选项二");
// menu.add(Menu.NONE, 3, Menu.NONE, "选项三");
super.onCreateContextMenu(menu, v, menuInfo);
}
// 上下文菜单监听回调
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_setting:
Toast.makeText(this, "用户设置", 500).show();
break;
case R.id.menu_exit:
Toast.makeText(this, "用户退出", 500).show();
break;
case R.id.font_red:
text_show.setTextColor(Color.RED);
break;
}
return super.onContextItemSelected(item);
}
// OptionMenu 选项菜单
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// 第一种:静态menu(菜单)的生成方法,XML文件中建立
getMenuInflater().inflate(R.menu.menu, menu);
// 第二种:动态建立菜单:用代码建立
// menu.add(groupId, itemId, order, titleRes)
// groupId:组 itemId:选项的id order:排序号 titleRes:选项名
menu.add(Menu.NONE, 1, Menu.NONE, "选项一");
menu.add(Menu.NONE, 2, Menu.NONE, "选项二");
menu.add(Menu.NONE, 3, Menu.NONE, "选项三");
return super.onCreateOptionsMenu(menu);
}
// OptionMenu 选项菜单监听
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_setting:
Toast.makeText(this, "用户设置", 500).show();
break;
case R.id.menu_exit:
Toast.makeText(this, "用户退出", 500).show();
break;
case R.id.font_red:
text_show.setTextColor(Color.RED);
break;
case 1:
Toast.makeText(this, "选项一", 500).show();
break;
case 2:
Toast.makeText(this, "选项2", 500).show();
break;
case 3:
Toast.makeText(this, "选项3", 500).show();
break;
}
return super.onOptionsItemSelected(item);
}
}
//菜单配置文件 放在文件夹res/menu/下
android:id="@+id/menu_setting"
android:orderInCategory="2"
android:title="设置">
android:id="@+id/menu_exit"
android:orderInCategory="3"
android:title="退出">
android:id="@+id/menu_color"
android:orderInCategory="1"
android:title="颜色设置">
android:id="@+id/font_red"
android:title="red"/>
android:id="@+id/font_blue"
android:title="blue"/>
android:id="@+id/font_green"
android:title="green"/>
android:id="@+id/font_yellow"
android:title="yellowed">
android:id="@+id/menu_font"
android:orderInCategory="1"
android:title="字体设置">
android:id="@+id/font_20"
android:title="20sp"/>
android:id="@+id/font_30"
android:title="30sp"/>
android:id="@+id/font_40"
android:title="40sp"/>
android:id="@+id/font_50"
android:title="50sp">
上下文菜单java