Android 程式开发:(八)使用活动栏 —— 8.3 自定义ActionBar

本文详细介绍了如何在Android应用中将图标与文字结合显示于菜单项,并通过Action项目和应用图标实现导航功能。包括如何设置显示方式、识别应用图标点击事件及使用Intent清除返回栈。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

  1. MenuItemmnu1=menu.add(0,0,0,"Item1");
  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. }


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

  1. privatebooleanMenuChoice(MenuItemitem)
  2. {
  3. switch(item.getItemId()){
  4. caseandroid.R.id.home:
  5. Toast.makeText(this,
  6. "YouclickedontheApplicationicon",
  7. Toast.LENGTH_LONG).show();
  8. returntrue;
  9. case0:
  10. Toast.makeText(this,"YouclickedonItem1",
  11. Toast.LENGTH_LONG).show();
  12. returntrue;
  13. case1:
  14. ......
  15. }
如果想让应用图标能被点击,我们需要调用setDisplayHomeAsUpEnable()方法:
  1. /**Calledwhentheactivityisfirstcreated.*/
  2. @Override
  3. publicvoidonCreate(BundlesavedInstanceState){
  4. super.onCreate(savedInstanceState);
  5. setContentView(R.layout.main);
  6. ActionBaractionBar=getActionBar();
  7. actionBar.setDisplayHomeAsUpEnabled(true);
  8. //actionBar.hide();
  9. //actionBar.show();//---showitagain---
  10. }
当点击应用图标:


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

  1. caseandroid.R.id.home:
  2. Toast.makeText(this,
  3. "YouclickedontheApplicationicon",
  4. Toast.LENGTH_LONG).show();
  5. Intenti=newIntent(this,MyActionBarActivity.class);
  6. i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
  7. startActivity(i);
  8. returntrue;
使用Intent.FLAG_ACTIVITY_CLEAR_TOP标识,可以确保当点击应用图标的时候,在“返回栈”里面的那些activity都会被清除掉。使用这种方法,如果用户点击返回键,其他的activity将不会再显示出来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值