Menu整理

一、选项菜单:最常规的菜单,android中把它叫做option menu,示例:


public class MainActivity extends Activity {

	private static final int CREATE_MENU=Menu.FIRST;
	private static final int ALTER_MENU=Menu.FIRST+1;
	private static final int UPDATE_MENU=Menu.FIRST+2;
	private static final int EXIT_MENU=Menu.FIRST+3;
	private static final int UPDATE_SUBMENU1=Menu.FIRST+4;
	private static final int UPDATE_SUBMENU2=Menu.FIRST+5;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		switch (item.getItemId()) {
		case UPDATE_SUBMENU2:
			Toast.makeText(this, "选择了",1).show();
			break;
		}
		return super.onOptionsItemSelected(item);
	}
	

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		menu.add(Menu.NONE, CREATE_MENU, Menu.NONE, "新建");
		menu.add(Menu.NONE, ALTER_MENU, Menu.NONE, "修改");
		SubMenu subMenu=menu.addSubMenu(Menu.NONE, UPDATE_MENU, Menu.NONE, "更新");
		subMenu.add(Menu.NONE, UPDATE_SUBMENU1, Menu.NONE, "更新 1");
		subMenu.add(Menu.NONE, UPDATE_SUBMENU2, Menu.NONE, "更新 2");
		menu.add(Menu.NONE, EXIT_MENU, Menu.NONE, "退出");
		return true;
	}

}
xml Menu ,依然以常规的菜单为例( option menu ),示例:


在工程的/menu下main.xml代码:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:id="@+id/create"
        android:icon="@drawable/ic_launcher"
        android:title="@string/create"/>
    <item
        android:id="@+id/setting"
        android:title="@string/setting">
        <menu>
            <item
                android:id="@+id/setting1"
                android:title="@string/setting1">
            </item>
  
            <item
                android:id="@+id/setting2"
                android:title="@string/setting2">
            </item>
        </menu>
    </item>
    <item
        android:id="@+id/update"
        android:title="@string/update"/>
    <item
        android:id="@+id/exit"
        android:title="@string/exit"/>
</menu>

Activity代码:

public class MainActivity extends Activity {

	private static final String TAG = "TAG";

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}

	@Override
	public boolean onMenuItemSelected(int featureId, MenuItem item) {
		switch (item.getItemId()) {
		case R.id.create:
			Log.d(TAG, "CREATE~~~~~~~~~~~~");
			break;
		case R.id.setting2:
			Log.d(TAG, "setting2~~~~~~~~~~~~");
			break;
		case R.id.exit:
			Log.d(TAG, "exit~~~~~~~~~~~~");
			break;
		}
		return super.onMenuItemSelected(featureId, item);
	}
	
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}


二、上下文菜单:android中长按视图控件后出现的菜单,windows点击右键弹出的菜单即上下文菜单


public class MainActivity extends Activity {

	private static final int MENU1=Menu.FIRST;
	private static final int MENU2=Menu.FIRST+1;
	private static final int MENU3=Menu.FIRST+2;
	private static final int MENU4=Menu.FIRST+3;
	
	private TextView mTextView;
	private Button mButton;
	private ImageView mImageView;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		mTextView=(TextView) findViewById(R.id.textViewId);
		mButton=(Button) findViewById(R.id.buttonId);
		mImageView=(ImageView) findViewById(R.id.imageViewId);
		
		this.registerForContextMenu(mTextView);
		this.registerForContextMenu(mButton);
		this.registerForContextMenu(mImageView);
	}

	
	@Override
	public boolean onContextItemSelected(MenuItem item) {
		Log.d("TAG", ""+item.getItemId());
		switch (item.getItemId()) {
		case MENU1 :
			Toast.makeText(this, "MENU1", 0).show();
			break;
		case MENU2 :
			Toast.makeText(this, "MENU2", 0).show();
			break;
		case MENU3 :
			Toast.makeText(this, "MENU3", 0).show();
			break;
		case MENU4 :
			Toast.makeText(this, "MENU4", 0).show();
			break;

		default:
			break;
		}
		return super.onContextItemSelected(item);
	}

	@Override
	public void onCreateContextMenu(ContextMenu menu, View v,
			ContextMenuInfo menuInfo) {
		
		switch (v.getId()) {
		case R.id.textViewId:
			menu.add(Menu.NONE, MENU1, Menu.NONE, "哈哈1");
			break;
		case R.id.imageViewId:
			menu.add(Menu.NONE, MENU2, Menu.NONE, "哈哈2");
			break;
		case R.id.buttonId:
			menu.add(Menu.NONE, MENU3, Menu.NONE, "哈哈3");
			menu.add(Menu.NONE, MENU4, Menu.NONE, "哈哈4");
			break;

		}
		super.onCreateContextMenu(menu, v, menuInfo);
	}
	
}

三、下拉框spinner

效果图:


package cn.imcore.test;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;

public class MainActivity extends Activity {

	private Spinner mSpinner;
	private ArrayAdapter mAdapter;
	private String [] hobby ={"棒球","足球","看书"};
	
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		mSpinner=(Spinner) findViewById(R.id.spinnerId);
		
		
		mAdapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, hobby);
		mAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		
//		String[] hobby = getResources().getStringArray(R.array.hobby);
//		mAdapter=ArrayAdapter.createFromResource(this, R.array.hobby, android.R.layout.simple_spinner_item);
//		mAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		
		mSpinner.setAdapter(mAdapter);
		
	}
}
还有PopupMenu等日后更新。。。。。。。。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值