Anroid之实现菜单几个基本步骤

开发选项菜单的菜单的基本步骤

    通过java实现

   1、重写Activity的onCreateOptionsMenu(Menu menu)方法

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		//向Menu中添加字体大小的子菜单
		SubMenu fontMenu=menu.addSubMenu("字体大小");
		//设置菜单的图标
		fontMenu.setIcon(R.drawable.ic_launcher);
		//设置菜单头的图标
		fontMenu.setHeaderIcon(R.drawable.ic_launcher);
		//设置菜单头的标题
		fontMenu.setHeaderTitle("选择字体大小");
		fontMenu.add(0,FONT_10,0,"10号字体");
		return super.onCreateOptionsMenu(menu);
	}
    2、重写Activity的onOptionsItemSelected(MenuItem item)方法相应菜单的单击事件

	//菜单项单击后的回调方法
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		
		//判断是哪个菜单项被单击了,并有针对性的做出响应
		switch (item.getItemId()) {
		case FONT_10:
			ed1.setTextScaleX(10*2);
			break;
		default:
			break;
		}
		return true;
		
	}
   通过XML资源文件来实现

     1、在res/menu文件下创建XML资源文件

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item 
        android:id="@+id/red"
        android:title="@string/read"/>
    <item 
        android:id="@+id/green"
        android:title="@string/green"/>
    <item 
        android:id="@+id/blue"
        android:title="@string/bule"/>

</menu>
  2、重写Activity的onCreateOptionsMenu(Menu menu)方法并将指定的XML资源文件绑定到Menu对象中

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		//将R.menu.main对应的菜单项,添加到menu中
		MenuInflater flater=new MenuInflater(this);
		flater.inflate(R.menu.main, menu);
		return true;
	}

  开发上下文菜单的基本步骤:

  1、冲写nCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo)方法

	//重写上下文菜单
	@Override
	public void onCreateContextMenu(ContextMenu menu, View v,
			ContextMenuInfo menuInfo) {
		// TODO Auto-generated method stub
		menu.add(0,MUNE1,0,"红色");
		menu.add(0,MUNE2,0,"绿色");
		menu.add(0,MUNE3,0,"蓝色");
		//将三个菜单设置为单选项
		menu.setGroupCheckable(0, true, true);
		menu.setHeaderIcon(R.drawable.ic_launcher);
		menu.setHeaderTitle("上下文菜单");
		
	}
    2、调用Activity的registerForContextMenu(View v)方法为v控件注册上下文菜单

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		txt1=(TextView)findViewById(R.id.txt1);
		//为文本标签注册上下文菜单
		registerForContextMenu(txt1);
	}
  3、重写public boolean onContextItemSelected(MenuItem item) 方法来相应单击事件
   
	@Override
	public boolean onContextItemSelected(MenuItem item) {

		switch (item.getItemId()) {
		case MUNE1:
			item.setCheckable(true);
			txt1.setTextColor(Color.RED);
			break;
		case MUNE2:
			item.setCheckable(true);
			txt1.setTextColor(Color.GREEN);
			break;
		case MUNE3:
			item.setCheckable(true);
			txt1.setTextColor(Color.BLUE);
			break;

		default:
			break;
		}
		return true;
	}
   通过xml资源文件来实现上下文菜单与选项菜单类似


使用PopMenu创建弹出菜单项的基本步骤:

   1、创建PopMenu对象

    2、将指定的XML资源填充到PopMenu中

    3、为PopMenu菜单项绑定监听时间

    4、调用PopMenu的show方法显示出来


   

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		bt1=(Button)findViewById(R.id.bt1);
		bt1.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				pop=new PopupMenu(MainActivity.this, v);
				//将资源R.menu.mian添加到pop菜单中
				MenuInflater flater=new MenuInflater(MainActivity.this);
				flater.inflate(R.menu.main, pop.getMenu());
				//为pop菜单项绑定监听事件
				pop.setOnMenuItemClickListener(new OnMenuItemClickListener() {
					
					@Override
					public boolean onMenuItemClick(MenuItem item) {
						// TODO Auto-generated method stub
						switch (item.getItemId()) {
						case R.id.red:
							bt1.setTextColor(Color.RED);
							break;
						case R.id.green:
							bt1.setTextColor(Color.GREEN);
							break;
						case R.id.blue:
							bt1.setTextColor(Color.BLUE);
							break;

						default:
							break;
						}
						return true;
					}
				});
				pop.show();
			}
		});
	}

你可能感兴趣的:(contextMenu,对象,textview,控件,Anroid之实现菜单)