为MenuItem添加事件
首先看一下自定义的菜单项
在这里我想为id为personlize的MenuItem添加单击事件, 当单击此条目时跳转到另一个Activity.
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- Search, should appear as action button -->
<item android:id="@+id/action_search"
android:title="@string/options"
android:icon="@drawable/options"
android:showAsAction="ifRoom" />
<!-- Settings, should always be in the overflow -->
<item android:id="@+id/personal"
android:title="@string/personal"
android:icon="@drawable/personal"
android:showAsAction="ifRoom" >
<menu>
<item
android:id="@+id/personalize"
android:title="@string/personalize"/>
<item
android:id="@+id/exit"
android:title="@string/exit"/>
<item
android:id="@+id/logout"
android:title="@string/logout"/>
<item
android:id="@+id/about_us"
android:title="@string/desc"/>
</menu>
</item>
</menu>我们要找到这个控件, 注意不能使用 findViewById() 这个方法, Menu 和 View 是不同的选项 ,
我在这里重写了 onPrepareOptionsMenu 方法通过 menu 的 findItem 方法找到对应的组件, 然后为它添加 click 事件 ,
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
menu.findItem(R.id.personalize).setOnMenuItemClickListener(new OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
Intent intent = new Intent(MainPage.this , PersonalAction.class);
startActivity(intent);
return true;
}
});
return super.onPrepareOptionsMenu(menu);
}或者重写 onCreateOptionsMenu 方法 然后获得组件添加方法也可以.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu , menu );
//setMenuBackground() ;
menu.findItem(R.id.personalize).setOnMenuItemClickListener(new OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
System.out.println("onMenuItemClick onCreateOptionsMenu");
return true;
}
});
return true;
}
实现效果

相关推荐
xfcyhades 2020-11-20
Michael 2020-11-03
业余架构师 2020-10-09
OuNuo0 2020-09-29
moses 2020-09-22
Angelia 2020-09-11
qinxu 2020-09-10
刘炳昭 2020-09-10
Nostalgiachild 2020-09-07
Nostalgiachild 2020-08-17
leavesC 2020-08-14
一青年 2020-08-13
AndroidAiStudy 2020-08-07
ydc0 2020-07-30
绿豆饼 2020-07-28