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>


 

相关文章
|
数据安全/隐私保护
RadioGroup+ViewPager +Fragment 制作APP主界面底部导航和左右滑动
RadioGroup+ViewPager +Fragment 制作APP主界面底部导航和左右滑动
102 0
RadioGroup+ViewPager +Fragment 制作APP主界面底部导航和左右滑动
|
XML 数据格式
自定义Toolbar的一些小技巧
1、改变Toolbar高度(解决图标不垂直居中) 背景:实际使用中,toolbar默认高度有些大,会挤压内容。想将toolbar高度改小,将layout_height从wrap_content改为固定值。 情况:toolbar的layout_height比默认高度小的时候,发现标题是居中的,但是两侧的图标不垂直居中而偏下了 调查:网上有很多方法,基本都是无效的。甚至有人利用反射直接修改图标的imageview的gravity,非常复杂且右侧图标无法实现。
188 0
|
Android开发 容器
Android动态修改ToolBar的Menu菜单
Android动态修改ToolBar的Menu菜单 效果图 实现 实现很简单,就是一个具有3个Action的Menu,在我们滑动到不同状态的时候,把对应的Action隐藏了。
1730 0
|
Java Android开发
Android Studio 使用ViewPager + Fragment实现滑动菜单Tab效果 --简易版
描述:         之前有做过一个记账本APP,拿来练手的,做的很简单,是用Eclipse开发的;         最近想把这个APP重新完善一下,添加了一些新的功能,并选用Android Studio来开发;         APP已经完善了一部分,现在就想把已经做好的功能整理一下,记录下来。
2927 0
|
Java Android开发
ViewPager通过自定义适配器MyPagerAdapter实现界面导航(上标题)
ViewPager ViewPager的使用技巧其实有很多,这里只是我个人 平时学习得到的经验,希望对大家有所帮助,如有不对还请见谅。 很乐意接纳大家的意见与建议,本人邮箱: 893239524@qq.com
6666 0
|
Android开发
Android特效专辑(四)——APP主页框架TabHost绑定ViewPager的替换者TabLayout
<div class="markdown_views"> <h1 id="android特效专辑四app主页框架tabhost绑定viewpager的替换者tablayout">Android特效专辑(四)——APP主页框架TabHost绑定ViewPager的替换者TabLayout</h1> <hr> <blockquote> <p>现在很多app都在追求简单明了,功
1553 0
|
XML Java Android开发
安卓开发_慕课网_ViewPager与FragmentPagerAdapter实现Tab实现Tab(App主界面)
学习内容来自“慕课网” ViewPager与FragmentPagerAdapter实现Tab 将这两种实现Tab的方法结合起来。效果就是可以拖动内容区域来改变相应的功能图标亮暗 思路: Fragment作为内容区域 点击功能按钮,想将所有的图标变为暗色图标,再调用相应的Fragment,并使对应的图标变亮 效果图: 布局文件部分 activity_main.
942 0