actionbar设置menu以及获取item实例

首先定义一下menu文件


xmlns:app="http://schemas.android.com/apk/res-auto">

android:id="@+id/edit_and_save"

app:showAsAction="always"

android:title="修改"

android:icon="@android:drawable/ic_menu_edit"

/>

然后需要在Activity文件中设置menu菜单, 需要重写onCreateOptionsMenu方法设置显示菜单


@Override

publicbooleanonCreateOptionsMenu(Menumenu){

getMenuInflater().inflate(R.menu.activity_menu,menu);

mMenuActionBar=menu;

returnsuper.onCreateOptionsMenu(menu);

}

完整的dome:


publicclassMainActivityextendsAppCompatActivity{

privatebooleanisEdit=false;

privateTextViewmEditText;

privateMenuItemmMenuItem;

privateMenumMenuActionBar;

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mEditText=(TextView)findViewById(R.id.edit_text);

}

@Override

publicbooleanonCreateOptionsMenu(Menumenu){

getMenuInflater().inflate(R.menu.activity_menu,menu);

mMenuActionBar=menu;

returnsuper.onCreateOptionsMenu(menu);

}

@Override

publicbooleanonOptionsItemSelected(MenuItemitem){

switch(item.getItemId()){

caseR.id.edit_and_save:

if(isEdit){

update();

}else{

update();

}

returntrue;

default:

returnsuper.onOptionsItemSelected(item);

}

}

privatevoidupdate(){

mMenuItem=mMenuActionBar.findItem(R.id.edit_and_save);

mMenuItem.setChecked(true);

if(isEdit){

mMenuItem.setIcon(android.R.drawable.ic_menu_edit);

mEditText.setEnabled(false);

}else{

mMenuItem.setIcon(android.R.drawable.ic_menu_save);

mEditText.setEnabled(true);

}

isEdit=!isEdit;

}

}
效果图
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,714评论 0 17
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,233评论 25 709
  • http://developer.android.youdaxue.com/guide/topics/ui/men...
    acc8226阅读 4,930评论 0 3
  • 毕业十年,脱离了熟悉的校园,那些相熟的同学之间的差异越来越大。无论从社会地位、能力学识、眼界谈吐,这些在相同资源和...
    凉凉小茶馆阅读 4,278评论 0 4
  • atom 使用备忘 由于sublime text在ubuntu下无法输入中文始终没有最好的解决办法,所以转战ato...
    Quilljou阅读 8,259评论 0 2