ActionBar详解(三)--->ActionBar的Home导航功能

简介: FirstActivity如下: package cc.testsimpleactionbar2;import android.os.Bundle;import android.

FirstActivity如下:

package cc.testsimpleactionbar2;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
/**
 * Demo描述:
 * ActionBar的Home导航功能.
 * 即点击ActionBar的一个按钮,回到App的首页.
 * 
 * 具体实现:
 * 在ActionBar上设置一个"Home",点击"Home"
 * 时回到指定位置即可
 * 
 * 备注说明:
 * 该示例是在testsimpleactionbar1的基础上进行的
 * 增加的代码很少.
 * 
 * 参考资料:
 * 1 Android疯狂讲义(第二版)
 *   Thank you very much
 *
 */
public class FirstActivity extends Activity {
	private Button mFirstButton;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.first);
		init();
	}

	private void init(){
		mFirstButton=(Button) findViewById(R.id.firstButton);
		mFirstButton.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				Intent intent=new Intent(FirstActivity.this, SecondActivity.class);
				startActivity(intent);
			}
		});
	}

}


SecondActivity如下:

package cc.testsimpleactionbar2;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class SecondActivity extends Activity {
	private Button mSecondButton;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.second);
		init();
	}

	private void init(){
		mSecondButton=(Button) findViewById(R.id.secondButton);
		mSecondButton.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				Intent intent=new Intent(SecondActivity.this, ThirdActivity.class);
				startActivity(intent);
				
			}
		});
	}

}


ThirdActivity如下:

package cc.testsimpleactionbar2;

import android.os.Bundle;
import android.app.ActionBar;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
import android.widget.Toast;
/**
 * 核心代码:
 * mActionBar.setDisplayHomeAsUpEnabled(true);
 *
 */
public class ThirdActivity extends Activity {
	private ActionBar mActionBar;
	private TextView mTipTextView;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.third);
		init();
	}

	private void init(){
		mActionBar=getActionBar();
		//设置是否显示应用程序的图标
		mActionBar.setDisplayShowHomeEnabled(true);
		//将应用程序图标设置为可点击的按钮
		mActionBar.setHomeButtonEnabled(true);
		//将应用程序图标设置为可点击的按钮,并且在图标上添加向左的箭头
		//该句代码起到了决定性作用
		mActionBar.setDisplayHomeAsUpEnabled(true);
		mTipTextView=(TextView) findViewById(R.id.tipTextView);
	}
	
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.action_menu, menu);
		return true;
	}
	
	// 菜单项被选中时执行该方法
	@Override
	public boolean onOptionsItemSelected(MenuItem menuItem) {
		if (menuItem.isCheckable()) {
			menuItem.setChecked(true);
		}
		switch (menuItem.getItemId()) {
		case android.R.id.home:
			//点击到我们ActionBar中设置的Home按钮
			Intent intent = new Intent(this, FirstActivity.class);
			intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
			startActivity(intent);
			break;
		case R.id.font10:
			mTipTextView.setTextSize(10 * 2);
			break;
		case R.id.font12:
			mTipTextView.setTextSize(12 * 2);
			break;
		case R.id.font14:
			mTipTextView.setTextSize(14 * 2);
			break;
		case R.id.font16:
			mTipTextView.setTextSize(16 * 2);
			break;
		case R.id.font18:
			mTipTextView.setTextSize(18 * 2);
			break;
		case R.id.redFont:
			mTipTextView.setTextColor(Color.RED);
			break;
		case R.id.greenFont:
			mTipTextView.setTextColor(Color.GREEN);
			break;
		case R.id.blueFont:
			mTipTextView.setTextColor(Color.BLUE);
			break;
		case R.id.plain_item:
			Toast toast = Toast.makeText(ThirdActivity.this, "单击了普通菜单项",Toast.LENGTH_SHORT);
			toast.show();
			break;

		default:
			break;
		}
		return true;
	}

}


first.xml如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="30dip"
        android:text="这是第一个Activity"
        android:textSize="20sp"
        android:textStyle="bold" />

    <Button
        android:id="@+id/firstButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:gravity="center"
        android:text="跳到第二个Activity"
        android:textSize="16sp" />

</RelativeLayout>


second.xml如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    
     <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="30dip"
        android:text="这是第二个Activity"
        android:textSize="20sp"
        android:textStyle="bold" />

     <Button
        android:id="@+id/secondButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="跳到第三个Activity"
        android:textSize="16sp"
        android:gravity="center"
     />

</RelativeLayout>


third.xml如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    
     <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="30dip"
        android:text="这是第三个Activity"
        android:textSize="20sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/tipTextView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="修改文字大小和颜色"
        android:textSize="16sp"
        android:gravity="center"
     />

</RelativeLayout>


action_menu.xml如下:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
     <item 
         android:title="文字大小"
         android:icon="@drawable/font"
         android:showAsAction="always|withText">
         <menu>
             <group android:checkableBehavior="single">
                 <item 
                     android:id="@+id/font10"
                     android:title="10"
                     />
                 <item 
                     android:id="@+id/font12"
                     android:title="12"
                     />
                 <item 
                     android:id="@+id/font14"
                     android:title="14"
                     />
                 <item 
                     android:id="@+id/font16"
                     android:title="16"
                     />
                 <item 
                     android:id="@+id/font18"
                     android:title="18"
                     />
             </group>
         </menu>
     </item>
     
     <item 
         android:id="@+id/plain_item"
         android:icon="@drawable/ic_launcher"
         android:title="普通菜单项"
         android:showAsAction="always|withText"
     />
    
     <item 
         android:title="设置颜色"
         android:icon="@drawable/color"
         android:showAsAction="always|withText">
         <menu>
             <group>
                 <item 
                     android:id="@+id/redFont"
                     android:title="红色"
                     />
                 <item 
                     android:id="@+id/greenFont"
                     android:title="绿色"
                     />
                 <item 
                     android:id="@+id/blueFont"
                     android:title="蓝色"
                     />
             </group>
         </menu>
     </item>

</menu>


 

相关文章
|
8月前
|
Android开发
Android SystemUI去掉拖动亮度条QSPanel界面隐藏功能
Android SystemUI去掉拖动亮度条QSPanel界面隐藏功能
163 0
|
数据安全/隐私保护
RadioGroup+ViewPager +Fragment 制作APP主界面底部导航和左右滑动
RadioGroup+ViewPager +Fragment 制作APP主界面底部导航和左右滑动
146 0
|
Android开发
Android项目Tab类型主界面大总结 Fragment+TabPageIndicator+ViewPager
Android项目Tab类型主界面大总结 Fragment+TabPageIndicator+ViewPager
Android项目Tab类型主界面大总结 Fragment+TabPageIndicator+ViewPager
|
Java Android开发
ViewPager通过自定义适配器MyPagerAdapter实现界面导航(上标题)
ViewPager ViewPager的使用技巧其实有很多,这里只是我个人 平时学习得到的经验,希望对大家有所帮助,如有不对还请见谅。 很乐意接纳大家的意见与建议,本人邮箱: 893239524@qq.com
6735 0
|
容器
ViewPager+PagerTabStrip实现页面选项卡滑动
            经过一个简单的Demo,基本上做出了个可以实现功能的滑动页面,但是这个东西复用性差,而且还有一些小bug,不喜欢,再改!        /* * 功能:改进滑动页面效果 * 作者:刘慧超 * 时间:2015年11月16日01:18:07 * */ public c...
998 0
|
Android开发
使用ViewPager和Fragment实现滑动导航
ViewPage是android-support-v4.jar包提供的用于页面滑动的库,android-support-v4.jar是google推荐使用的一个类库,在项目中使用之前,你必须其添加到项目中(项目点右键Build path->configure build path,然后找到jar进行添加) 1.
1157 0
|
Android开发 容器 数据格式
Android ViewPager实现Tabhost选项卡底部滑块动态滑动过渡
 《Android ViewPager实现Tabhost选项卡底部滑块动态滑动过渡》 之前基于github上的第三方开源控件ViewPagerIndicator的UnderlinePageIndicator(原文链接:http://blog.csdn.net/zhangphil/article/details/44752213),自己写了一个底部带有滑块、且当ViewPager页面切换时候选项卡也随之相应切换,且滑块也随之相应动态滑动效果得控件。
1216 0