ActionBar


学习了: http://blog.csdn.net/bigconvience/article/details/28886241

自己总结了些 如果有不正确的地方请指正

ActionBar位于Activity的顶部,可用来显示activity的标题、Icon、Actions和一些用于交互的View。它也可被用于应用的导航。

ActionBar 是在 Android 3.0(API 11)中加入到SDK中的,想在低版本中使用ActionBar有两种选择:使用http://actionbarsherlock.com 或使用Support Library v7。
下面是一张使用ActionBar的界面截图:

其中,[1]是ActionBar的图标,[2]是两个action按钮,[3]是overflow按钮


案例一:搜索


第一步:

menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/action_search"
        android:icon="@drawable/ic_action_search"
        android:orderInCategory="100"
        android:showAsAction="always"
        android:title="@string/action_search"
        android:actionViewClass="android.support.v7.widget.SearchView"/>
    <item
        android:id="@+id/action_settings"
        android:title="Settings">
    </item>

</menu>



第二步:

1.初始化menu

/**
	 * 初始化menu
	 */
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

2.处理搜索点击

    // 处理搜索点击事件
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if (item.getItemId() == R.id.action_search) {
            Toast.makeText(this, "搜索", 0).show();
        }

        return super.onOptionsItemSelected(item);
    }

3.搜索的监听

	/**
	 * 初始化menu
	 */
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.main, menu);
		
		//获取searchview
		SearchView search = (SearchView) menu.findItem(R.id.action_search).getActionView();
		//设置监听
		search.setOnQueryTextListener(new OnQueryTextListener() {
			
			// 搜索文本提交的时候
			@Override
			public boolean onQueryTextSubmit(String arg0) {
				Toast.makeText(getApplicationContext(), "onQueryTextSubmit", 0)
						.show();
				return true;
			}

			// 搜索文本发生变化的时候
			@Override
			public boolean onQueryTextChange(String searchText) {
				Toast.makeText(getApplicationContext(), searchText, 0).show();
				return false;
			}
		});

		return true;
	}


案例二:

MainActivity ---跳转--- DetailActivity ---返回---MainActivity

                     

1.跳转

	//跳转 MainActivity - DetailActivity
	public void click(View view){
		startActivity(new Intent(getApplicationContext(),DetailActivity.class));
	}
	

2.返回

在DetailActivity

package com.itheima.googleplay;

import android.app.ActionBar;
import android.app.Activity;
import android.os.Bundle;


public class DetailActivity extends Activity{
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_detail);
		
		ActionBar actionBar = getActionBar();
		actionBar.setDisplayHomeAsUpEnabled(true);//给图片左上角添加一个返回图标
	}
}

AndroidManifest.xml

需要注意:com.itheima.googleplay.MainActivity必须全称不可以简写android:parentActivityName="com.itheima.googleplay.MainActivity"

        <activity 
            android:name=".DetailActivity"
            android:label="@string/action_detail"
            android:parentActivityName="com.itheima.googleplay.MainActivity"
            ></activity>


案例三:设置actionbar tab标签

1.自定义样式

drawable

        actionbar_tab_indicator.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

<!-- STATES WHEN BUTTON IS NOT PRESSED -->

    <!-- Non focused states -->
    <item android:state_focused="false" android:state_selected="false"
          android:state_pressed="false"
          android:drawable="@drawable/tab_unselected" />
    <item android:state_focused="false" android:state_selected="true"
          android:state_pressed="false"
          android:drawable="@drawable/tab_selected" />

    <!-- Focused states (such as when focused with a d-pad or mouse hover) -->
    <item android:state_focused="true" android:state_selected="false"
          android:state_pressed="false"
          android:drawable="@drawable/tab_unselected_focused" />
    <item android:state_focused="true" android:state_selected="true"
          android:state_pressed="false"
          android:drawable="@drawable/tab_selected_focused" />

<!-- STATES WHEN BUTTON IS PRESSED -->

    <!-- Non focused states -->
    <item android:state_focused="false" android:state_selected="false"
          android:state_pressed="true"
          android:drawable="@drawable/tab_unselected_pressed" />
    <item android:state_focused="false" android:state_selected="true"
        android:state_pressed="true"
        android:drawable="@drawable/tab_selected_pressed" />

    <!-- Focused states (such as when focused with a d-pad or mouse hover) -->
    <item android:state_focused="true" android:state_selected="false"
          android:state_pressed="true"
          android:drawable="@drawable/tab_unselected_pressed" />
    <item android:state_focused="true" android:state_selected="true"
          android:state_pressed="true"
          android:drawable="@drawable/tab_selected_pressed" />
</selector>

2.

valus

theme.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <!-- the theme applied to the application or activity -->
    <style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light">
        <item name="android:actionBarTabStyle">@style/MyActionBarTabs</item>
        <item name="android:actionBarTabTextStyle">@style/MyActionBarTabTextStyle</item>  
    </style>

    <!-- ActionBar tabs styles背景 -->
    <style name="MyActionBarTabs" parent="@style/Widget.AppCompat.ActionBar.TabView">

        <!-- tab indicator -->
        <item name="android:background">@drawable/actionbar_tab_indicator</item>
        <!-- Support library compatibility -->
        <item name="background">@drawable/actionbar_tab_indicator</item>
    </style>
	<!--  字体设置 -->
    <style name="MyActionBarTabTextStyle" parent="android:style/Widget.Holo.Light.ActionBar.TabText">
        <item name="android:textColor">#ff0000</item>
        <item name="android:textSize">12sp</item>
    </style>

</resources>

3.AndoridManifest.xml
  <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"

       android:theme="@style/CustomActionBarTheme" >//自定义


        <activity..................

4.MainActivity.java

package com.itheima.googleplay;

import android.os.Bundle;
import android.app.ActionBar;
import android.app.ActionBar.TabListener;
import android.app.FragmentTransaction;
import android.app.ActionBar.Tab;
import android.app.Activity;
import android.content.Intent;
import android.support.v7.widget.SearchView;
import android.support.v7.widget.SearchView.OnQueryTextListener;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
                //=========================================tab标签=========================================================
                ActionBar bar = getActionBar();
		//添加tab
		bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
		//添加标签
		bar.addTab(bar.newTab().setText("标签1").setTabListener(new MyTabListenter()));
		bar.addTab(bar.newTab().setText("标签2").setTabListener(new MyTabListenter()));
		bar.addTab(bar.newTab().setText("标签3").setTabListener(new MyTabListenter()));
		bar.addTab(bar.newTab().setText("标签4").setTabListener(new MyTabListenter()));
		bar.addTab(bar.newTab().setText("标签5").setTabListener(new MyTabListenter()));
	}

	private class MyTabListenter implements TabListener{

		@Override
		public void onTabSelected(Tab tab, FragmentTransaction ft) {
			// TODO Auto-generated method stub
			
		}

		@Override
		public void onTabUnselected(Tab tab, FragmentTransaction ft) {
			// TODO Auto-generated method stub
			
		}

		@Override
		public void onTabReselected(Tab tab, FragmentTransaction ft) {
			// TODO Auto-generated method stub
			
		}
		
	}
//==================================================================================================================================
 /**
	 * 初始化menu
	 */
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.main, menu);
		
		//获取searchview
		SearchView search = (SearchView) menu.findItem(R.id.action_search).getActionView();
		//设置监听
		search.setOnQueryTextListener(new OnQueryTextListener() {
			
			// 搜索文本提交的时候
			@Override
			public boolean onQueryTextSubmit(String searchText) {
				//输入内容的searchText
				Toast.makeText(getApplicationContext(), searchText, 0)
						.show();
				return true;
			}

			// 搜索文本发生变化的时候
			@Override
			public boolean onQueryTextChange(String searchText) {
				Toast.makeText(getApplicationContext(), searchText, 0).show();
				return false;
			}
		});

		return true;
	}

	// 处理搜索点击事件
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		if (item.getItemId() == R.id.action_search) {
			Toast.makeText(this, "搜索", 0).show();
		}

		return super.onOptionsItemSelected(item);
	}
	
	//跳转 MainActivity - DetailActivity
	public void click(View view){
		startActivity(new Intent(getApplicationContext(),DetailActivity.class));
	}
	

}







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值