一、选项菜单:最常规的菜单,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等日后更新。。。。。。。。。。。