您的位置:首页 > 其它

Menu整理

2014-04-12 10:32 232 查看
一、选项菜单:最常规的菜单,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等日后更新。。。。。。。。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: