在上一节中,菜单选项是没有文字的。如果想要同时显示图标和文字,可以一起使用“|”和MenuItem.SHOW_AS_ACTION_WITH_TEXT常量。

[java] view plain copy print ?
  1. MenuItem mnu1 = menu.add(0,0, 0,"Item 1");
  2. {
  3. mnu1.setIcon(R.drawable.ic_launcher);
  4. mnu1.setShowAsAction(
  5. MenuItem.SHOW_AS_ACTION_IF_ROOM |
  6. MenuItem.SHOW_AS_ACTION_WITH_TEXT);
  7. }
MenuItem mnu1 = menu.add(0, 0, 0, "Item 1"); { mnu1.setIcon(R.drawable.ic_launcher); mnu1.setShowAsAction( MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT); }


除了可以点击Action项目,也可以点击ActionBar上面的应用图标。当应用图标被点击的时候,会调用onOptionsItemSelected()方法。如果想识别应用图标被点击了,可以使用adnroid.R.id.home常量。

[java] view plain copy print ?
  1. private boolean MenuChoice(MenuItem item)
  2. {
  3. switch (item.getItemId()) {
  4. case android.R.id.home:
  5. Toast.makeText(this,
  6. "You clicked on the Application icon",
  7. Toast.LENGTH_LONG).show();
  8. return true;
  9. case 0:
  10. Toast.makeText(this, "You clicked on Item 1",
  11. Toast.LENGTH_LONG).show();
  12. return true;
  13. case 1:
  14. ......
  15. }
private boolean MenuChoice(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: Toast.makeText(this, "You clicked on the Application icon", Toast.LENGTH_LONG).show(); return true; case 0: Toast.makeText(this, "You clicked on Item 1", Toast.LENGTH_LONG).show(); return true; case 1: ...... } 如果想让应用图标能被点击,我们需要调用setDisplayHomeAsUpEnable()方法:

[java] view plain copy print ?
  1. /** Called when the activity is first created. */
  2. @Override
  3. public void onCreate(Bundle savedInstanceState) {
  4. super.onCreate(savedInstanceState);
  5. setContentView(R.layout.main);
  6. ActionBar actionBar = getActionBar();
  7. actionBar.setDisplayHomeAsUpEnabled(true);
  8. //actionBar.hide();
  9. //actionBar.show(); //---show it again---
  10. }
/** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ActionBar actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); //actionBar.hide(); //actionBar.show(); //---show it again--- }当点击应用图标:


一般情况下,一个应用可能包含很多activity,那么应用的图标通常被用来返回主Activity。如果想这么做,就需要一个Intent对象,并使用Intent.FLAG_ACTIVITY_CLEAR_TOP标志。

[java] view plain copy print ?
  1. case android.R.id.home:
  2. Toast.makeText(this,
  3. "You clicked on the Application icon",
  4. Toast.LENGTH_LONG).show();
  5. Intent i = new Intent(this, MyActionBarActivity.class);
  6. i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
  7. startActivity(i);
  8. return true;
case android.R.id.home: Toast.makeText(this, "You clicked on the Application icon", Toast.LENGTH_LONG).show(); Intent i = new Intent(this, MyActionBarActivity.class); i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(i); return true;使用Intent.FLAG_ACTIVITY_CLEAR_TOP标识,可以确保当点击应用图标的时候,在“返回栈”里面的那些activity都会被清除掉。使用这种方法,如果用户点击返回键,其他的activity将不会再显示出来。

更多相关文章

  1. ListView的OnItemClickListener事件被其内部Button点击事件屏蔽
  2. android studio编写运行java main的三种方法(亲测)
  3. 【Android】TextView 显示超链接的几种方法
  4. android 实现点击edittext的“小眼睛”切换明密文
  5. android 开机铃音和开机图片以及系统自带的图标的位置
  6. Linux 下Android(安卓)开发环境搭建 ---CentOS
  7. android 点击按钮实现页面跳转并显示以选择信息
  8. Android基础控件——EditText隐藏软键盘、Enter键隐藏软键盘、点
  9. android studio导出apk步骤

随机推荐

  1. Android中RTL布局的适配
  2. 特殊情况下的APP设计⑤:最全的临时框设计
  3. Android(安卓)运行时权限管理最佳实践
  4. Android(安卓)混淆器 - ProGuard
  5. 【工作感悟】Android(安卓)开发者,如何提
  6. android解析xml文件的方式之SAX方式
  7. 如何跳过Nexus 7二代的开机设置
  8. Android开发--身高体重指数(BIM)计算--访问
  9. [置顶] Android(安卓)通知栏Notification
  10. Android(安卓)Studio自定义组合控件