当前位置:操作系统 > 安卓/Android >>

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

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

[java] 
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] 
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]
/** 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]
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将不会再显示出来。

补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,