您的位置:首页 > 产品设计 > UI/UE

Android4.0 -- UI控件之 Menu 菜单的的使用(四)

2013-08-22 23:40 435 查看

2. PopupMenu 菜单的使用

1) PopupMenu 介绍





创建弹出菜单,它一般会在view的上边或者下边弹出菜单[具体看是否有空间],注意弹出菜单是api在11或者更高版本中使用
如果你在XML文件中定义了你的菜单,你就可以通过以下步骤来显示弹出菜单了:

1. 实例化一个 PopupMenu 通过它的构造方法,这样就可以把当前应用的 context 和 view 传给所定义的菜单了
2. 使用 MenuInflater 来加载菜单资源,通过 PopupMenu.getMenu() 得到一个 Menu 对象,如果是在 API 14 或者更高级,你可以通过 PopupMenu.inflate() 来代替了。
3. 调用 PopupMenu.show()。


2) 程序实现



1) 布局文件 activity_main.xml 只是定义一个按钮,这里就不再粘贴了。

2) 菜单定义文件 目录:res/menu 下 main.xml



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

<item
android:id="@+id/share"
android:orderInCategory="100"
android:showAsAction="never"
android:title="Share"/>
<item
android:id="@+id/edit"
android:orderInCategory="100"
android:showAsAction="never"
android:title="Edit"/>
<item
android:id="@+id/delete"
android:orderInCategory="100"
android:showAsAction="never"
android:title="Delete"/>

</menu>


3) 程序主要代码

public class MainActivity extends Activity {

private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initComponent();
//这种就不需要长按事件
button.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//当前这个v就是 button2控件
PopupMenu popupMenu = new PopupMenu(MainActivity.this, v);
popupMenu.setOnMenuItemClickListener(new OnMenuItemClickListener() {

@Override
public boolean onMenuItemClick(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case R.id.edit:
Toast.makeText(MainActivity.this, "Edit", 3).show();
break;
case R.id.share:
Toast.makeText(MainActivity.this, "share", 3).show();
break;
case R.id.delete:
Toast.makeText(MainActivity.this, "delete", 3).show();
break;
}
return false;
}
});

MenuInflater inflater = popupMenu.getMenuInflater();
inflater.inflate(R.menu.main, popupMenu.getMenu());
popupMenu.show();
}
});
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

private void initComponent(){
button = (Button)findViewById(R.id.button1);
}

}


3) 执行结果



详情参考:http://developer.android.com/guide/topics/ui/menus.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: