• 启用程序图标导航


        为了将应用程序图标转变为可以点击的图标,可以调用ActionBar的如下方法。

    • setDisplayHomeAsUpEnabled(boolean showHomeAsUp):设置是否将应用程序图标转变为可点击的图标,并在图标上添加一个向左的箭头。
    • setDisplayOptions(int options):通过传入int类型常量来控制该ActionBar的显示选项。
    • setDisplayShowHomeEnabled(boolean showHome):设置是否显示应用程序的图标。
    • setHomeButtonEnable(boolean enabled):设置是否将应用程序图标转变成可点击的按钮。

        下面的程序将该Activity的程序图标转变成可点击的图标,并控制用于单击该图标时直接返回程序的主Activity。该程序的界面布局文件如下:

      

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
      >
        <TextView
            android:id="@+id/txt"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:textSize="15pt"
            android:text="可通过应用程序图标返回主Activity" />
    </LinearLayout>

    后台代码文件如下:

    package org.crazyit.helloworld;
    
    import android.os.Bundle;
    import android.app.ActionBar;
    import android.app.Activity;
    import android.content.Intent;
    import android.view.Menu;
    import android.view.MenuInflater;
    import android.view.MenuItem;
    import android.widget.TextView;
    
    public class ActionHomeTest extends Activity {
        
        private TextView txt;
        ActionBar actionBar;
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.action_home_test);
            txt=(TextView)findViewById(R.id.txt);
            actionBar=getActionBar();
            //设置是否显示应用程序图标
            actionBar.setDisplayShowHomeEnabled(false);
            //将应用程序图标设置为可点击的按钮
            actionBar.setHomeButtonEnabled(true);
            //将应用程序图标设置为可点击的按钮,并在图标上添加左箭头
            actionBar.setDisplayHomeAsUpEnabled(true);
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            MenuInflater inflator=new MenuInflater(this);
            //状态R.menu.context对应的菜单,并添加到menu中
            inflator.inflate(R.menu.my_menu, menu);
            
            // Inflate the menu; this adds items to the action bar if it is present.
            //getMenuInflater().inflate(R.menu.action_home_test, menu);
            //return true;
            return super.onCreateOptionsMenu(menu);
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem mi) {
            if(mi.isCheckable())
            {
                mi.setCheckable(true);//
            }
            //判断单击的是哪个菜单项,并有针对性地作出响应
            switch(mi.getItemId())
            {
            case android.R.id.home:
                //创建启动ViewFlipperTest的Intent
                Intent intent=new Intent(this,ViewFlipperTest.class);
                //添加额外的Flag,将Activity栈中处于DialogTheme之上的Activity弹出
                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                //启动intent对应的Activity
                startActivity(intent);
                break;
            
            
            
            }
            
            return true;
            
            // TODO Auto-generated method stub
            //return super.onOptionsItemSelected(item);
        }
    
    }

       上面的程序中前两行粗体字代码的任意一行都可将ActionBar上的应用程序图标转换为可点击的图标。接下来程序为点击事件绑定了事件监听器,当用户单击ID为android.id.home的Action Item时(应用程序图标的ID)时,程序使用Intent返回了应用程序主Activity,如上面的第二段粗体字代码所示。

    运行上面的程序将看到如下效果:

  • 相关阅读:
    转:imageNamed和dataWithContentsOfFile的区别
    [内存管理实践 之 1]在返回按钮中,释放内存
    转:当程序崩溃的时候怎么办 Part2
    iOS 内存管理,我们需要一套切实可行的实践指导书,而不是理论指导书
    转 iOS程序中调用系统自带应用(短信,邮件,浏览器,地图,appstore,拨打电话)
    iOS笔记:内存管理
    转:【图文教程】创建Xcode自定义模板
    判断两个数的大小,返回其中的大者/小者
    iOS全局变量与属性的内存管理
    UIImage 详解
  • 原文地址:https://www.cnblogs.com/wolipengbo/p/3400067.html
Copyright © 2020-2023  润新知