res/layout/main.xml代码如下:
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical"
- android:id="@+id/myLayout"
- android:background="#ffffffff">
- </LinearLayout>
Java代码如下:
- package com.demo.android.contextmenu;
- import android.app.Activity;
- import android.graphics.Color;
- import android.os.Bundle;
- import android.view.ContextMenu;
- import android.view.Menu;
- import android.view.ContextMenu.ContextMenuInfo;
- import android.view.MenuItem;
- import android.view.View;
- import android.widget.LinearLayout;
- import android.widget.Toast;
- public class ContextMenuActivity extends Activity {
- private LinearLayout myLayout;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- //获取myLayout对象
- myLayout=(LinearLayout) findViewById(R.id.myLayout);
- //为myLayout对象注册ContextMenu事件
- this.registerForContextMenu(myLayout);
- }
- @Override
- public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
- super.onCreateContextMenu(menu, v, menuInfo);
- //设置菜单标题的图标
- menu.setHeaderIcon(R.drawable.tinfo);
- //设置菜单标题
- menu.setHeaderTitle("设置背景颜色");
- menu.add(Menu.NONE,0,0,"蓝色");
- menu.add(Menu.NONE,1,1,"绿色");
- }
- @Override
- public boolean onContextItemSelected(MenuItem item) {
- super.onContextItemSelected(item);
- switch(item.getItemId()){
- case 0:{
- Toast.makeText(ContextMenuActivity.this, "单击了:"+item.getTitle(), Toast.LENGTH_SHORT).show();
- myLayout.setBackgroundColor(Color.BLUE);
- break;
- }
- case 1:{
- Toast.makeText(ContextMenuActivity.this, "单击了:"+item.getTitle(), Toast.LENGTH_SHORT).show();
- myLayout.setBackgroundColor(Color.GREEN);
- break;
- }
- }
- return true;
- }
- }