上次是重写系统的菜单按钮,这次调用自己写的按钮或者其他view对象,但是已经把选项弄成类似于弹窗的选项了。
我们还是以三个选项(修改,注销,退出为例)
首先在res/menu下创建contextmenu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/changeInfo"
android:title="修改个人信息"
></item>
<item android:id="@+id/logout"
android:title="注销"
></item>
<item android:id="@+id/exit"
android:title="退出"
></item>
</menu>然后在Activity的onCreate()方法里面绑定view
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 预先准备好的按钮
Button b = (Button) findViewById(R.id.btn_appointment);
// 为上下文菜单注册
this.registerForContextMenu(b);
}在Activity中重写onCreateContextMenu()方法
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
// 实例化一个Menulnflater对象
MenuInflater inflater = new MenuInflater(this);
// 解析菜单文件
inflater.inflate(R.menu.contextmenu, menu);
// 为选项栏添加图标
menu.setHeaderIcon(R.drawable.icon);
// 为选项栏添加标题
menu.setHeaderTitle("选项栏标题");
}
在Activity中重写onContextItemSelected()方法,为的是执行点击每个item的操作
public boolean onContextItemSelected(MenuItem item) {
// 通过Id去辨识选项
switch (item.getItemId()) {
case R.id.changeInfo:
// 修改信息要执行的模块
break;
case R.id.logout:
// 注销要执行的模块
break;
case R.id.exit:
// 退出要执行的模块
break;
}
return true;
}最后一点非常重要,要再手机上长按绑定的view才能呼出功能栏
351

被折叠的 条评论
为什么被折叠?



