ActionBar實現頂部返回鍵,頂部按鈕


   Action bar是一個標識應用程序和用戶位置的窗口功能,並且給用戶提供操作和導航模式。在大多數的情況下,當你需要突出展現用戶行為或全局導航的activity中使用action bar,因為action bar能夠使應用程序給用戶提供一致的界面,並且系統能夠很好根據不同的屏幕配置來適應操作欄的外觀。你能夠用ActionBar的對象的API來控制操作欄的行為和可見性,這些API被添加在Android3.0(API 級別 11)中。

      Action bar的主要目的是:

        1.  提供一個用於識別應用程序的標示和用戶的位置的專用空間。

         這個空間的左邊是應用的圖標或logo,以及Activity的標題。但是,如果是像當前選擇的標簽這樣的標識當前View對象的導航標簽,你可以選擇刪除Activity的標題。

        2.  在不同的應用程序之間提供一致的導航和視覺體驗。

        Action bar提供了用於Fragment間切換的內置導航標簽。它還提供了一個用於替換導航模式或優化當前視覺效果(如按照不同條件排序的列表)的下拉列表。

        3.  突出Activity的關鍵操作(如“搜索”、“創建”、“共享”等),並且在可預見的方法內給用戶提供快捷的訪問。

       對於關鍵的用戶操作,你能夠通過把選項菜單項作為操作項直接放到操作欄中,從而提供快捷的訪問。操作項目還能提供一個操作窗口,這個窗口給更直接的操作 行為提供一個嵌入的窗口部件。沒有改進成操作項的菜單項在溢出菜單中還是有效的,用戶既可以使用設備上的菜單按鈕(設備上有按鈕的時候),也可以使用操作 欄中的溢出菜單按鈕(當設備上不包含菜單按鈕時)來顯示這些操作項目。

下面實現返回鍵

 安卓主題必須是Theme.Holo,以及其子主題

        <activity
            android:name="com.example.mysharedpreferences.dgkz"
            android:label="四路燈光控制"
            android:theme="@android:style/Theme.Holo"/>

主函數

package com.example.mysharedpreferences;

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

public class dgkz extends Activity {
	@Override
	 protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.dgkz);

		/* 顯示App icon左側的back鍵 */
		ActionBar actionBar = getActionBar();
		actionBar.setDisplayHomeAsUpEnabled(true);

	        
	 }

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		switch (item.getItemId()) {
        case android.R.id.home:  
            finish();
            return true; 
		default:
			return super.onOptionsItemSelected(item);
		}
	}


}

 

 

 

下面我們來實現頂部按鈕

先寫一個menu.xml文件,用於存放頂部按鈕的文件

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

    <item
        android:id="@+id/user_p"
        android:icon="@drawable/yh"
        android:showAsAction="always"
        android:title="用戶"/>
    <item
        android:id="@+id/write_p"
        android:icon="@drawable/fb"
        android:showAsAction="always"
        android:title="發布"/>
    <item
        android:id="@+id/favo_p"
        android:icon="@drawable/sc"
        android:showAsAction="never"
        android:title="收藏"/>

</menu>

 主函數

package com.example.myrixin;

import java.util.List;

import android.app.ActionBar;
import android.app.ActionBar.LayoutParams;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.Paint.Align;
import android.location.Location;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.LinearLayout;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.RadioGroup.OnCheckedChangeListener;

public class xxxx extends Activity implements OnCheckedChangeListener {

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.xxxx);
		
		//actionBar
		ActionBar actionBar = getActionBar();
		//類似返回箭頭的東東  
		actionBar.setDisplayHomeAsUpEnabled(true); 

	}
	
  
	//actionbar
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		MenuInflater inflater = getMenuInflater();
		inflater.inflate(R.layout.menu, menu);
		return super.onCreateOptionsMenu(menu);
	}

	//當用戶點擊Action按鈕的時候,系統會調用Activity的onOptionsItemSelected()方法
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		switch (item.getItemId()) {
        case android.R.id.home:  
            finish();
            return true; 
		case R.id.user_p:
			Toast.makeText(this, "你點擊了“用戶”按鍵!", Toast.LENGTH_SHORT).show();
			return true;
		case R.id.write_p:
			Toast.makeText(this, "你點擊了“發布”按鍵!", Toast.LENGTH_SHORT).show();
			return true;
		case R.id.favo_p:
			Toast.makeText(this, "你點擊了“收藏”按鍵!", Toast.LENGTH_SHORT).show();
			return true;
		default:
			return super.onOptionsItemSelected(item);
		}
	}
}

 運行結果

 

想學習更多的內容可以看博客:http://www.cnblogs.com/yc-755909659/p/4290784.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM