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

 

posted @ 2016-03-29 10:29  下雨天rain  阅读(9491)  评论(0编辑  收藏  举报