-------------------------------------main.java------------------------------
package com.example.mm;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends ActionBarActivity {
private TextView txt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txt = (TextView) findViewById(R.id.txt);
// 为文本框注册上下文菜单
registerForContextMenu(txt);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater menuInflater = new MenuInflater(this);
//装载R.menu.main对应的菜单,并添加到menu中
menuInflater.inflate(R.menu.main,menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
//判断单击的是哪个菜单项,并针对性的作出响应。
switch (item.getItemId())
{
case R.id.font_10:
txt.setTextSize(10 * 2);
break;
case R.id.font_12:
txt.setTextSize(12 * 2);
break;
case R.id.font_14:
txt.setTextSize(14 * 2);
break;
case R.id.font_16:
txt.setTextSize(16 * 2);
break;
case R.id.red_font:
txt.setTextColor(Color.RED);
break;
case R.id.green_font:
txt.setTextColor(Color.GREEN);
break;
case R.id.blue_font:
txt.setTextColor(Color.BLUE);
break;
case R.id.plain_item:
Toast toast = Toast.makeText(MainActivity.this
,"您单击了普通菜单项",Toast.LENGTH_SHORT);
toast.show();
break;
}
return true;
}
// 每次创建上下文菜单(ContextMenu)时都会触发该方法
@Override
public void onCreateContextMenu(ContextMenu menu,View source,
ContextMenu.ContextMenuInfo menuInfo)
{
MenuInflater menuInflater = new MenuInflater(this);
//装载R.menu.context_menu对应的菜单,并添加到menu中
menuInflater.inflate(R.menu.context_menu,menu);
menu.setHeaderTitle("请选择背景颜色");
menu.setHeaderIcon(R.drawable.ic_launcher);
}
// ContextItem菜单项被单击时触发该方法。
@Override
public boolean onContextItemSelected(MenuItem mi)
{
//勾选该菜单项
mi.setCheckable(true);
switch (mi.getItemId())
{
case R.id.red:
mi.setChecked(true);
txt.setBackgroundColor(Color.RED);
break;
case R.id.green:
mi.setChecked(true);
txt.setBackgroundColor(Color.GREEN);
break;
case R.id.blue:
mi.setChecked(true);
txt.setBackgroundColor(Color.BLUE);
break;
}
return true;
}
}
。。。。。。。。。。。。。。。。。。main.xml。。。。。。。。。。。。。。。。。。。。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/txt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="15pt"
android:text="可通过上下文菜单修改背景色"
/>
</LinearLayout>
。。。。。。。。。。。。。。。。。/menu/main.xml。。。。。。。。。。。。。。。。。。。。。。。。
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.example.mm.MainActivity" >
<!-- 第一个菜单项 -->
<item android:title="字体大小"
android:icon="@drawable/ic_launcher"
>
<!-- 子菜单 -->
<menu>
<!-- 定义一组单选菜单项 -->
<group android:checkableBehavior="single">
<item
android:id="@+id/font_10"
android:title="10号字体"
/>
<item
android:id="@+id/font_12"
android:title="12号字体"
/>
<item
android:id="@+id/font_14"
android:title="14号字体"
/>
<item
android:id="@+id/font_16"
android:title="16号字体"
/>
</group>
</menu>
</item>
<!-- 第二个菜单项 -->
<!-- 一个普通菜单项 -->
<item android:id="@+id/plain_item"
android:title="普通菜单项"
/>
<!-- 第三个菜单项 -->
<item
android:title="字体颜色"
>
<!-- 子菜单 -->
<menu>
<!-- 定义一个普通的菜单项 -->
<group>
<!-- 定义3个菜单项 -->
<item android:id="@+id/red_font"
android:title="红色"
/>
<item android:id="@+id/blue_font"
android:title="蓝色"
/>
<item android:id="@+id/green_font"
android:title="绿色"
/>
</group>
</menu>
</item>
</menu>
。。。。。。。。。。。。。。。。/menu/context_menu.xml。。。。。。。。。。。。。。。。
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" tools:context="com.example.mm.MainActivity" > <!-- 定义一个单选菜单项目 --> <group android:checkableBehavior="single" > <item android:id="@+id/red" android:title="红色" android:alphabeticShortcut="r" /> <item android:id="@+id/green" android:title="绿色" android:alphabeticShortcut="g" /> <item android:id="@+id/blue" android:title="蓝色" android:alphabeticShortcut="b" /> </group> </menu>