android fba控件,(Android 基礎知識) ActionBar----頂部控件

ActionBar介紹:

ActionBar是一個顯示在屏幕頂部的控件,它包括了在左邊顯示的應用的logo圖標和右邊操作菜單的可見項。我們可以選擇可見的操作菜單可見項,不可見項會以下拉列表的形式呈現出來。

ActionBar基礎:

在Android3.0的默認主題“holographic”中,已經創造了ActionBar,所以Android最低的版本是Android3.0。(最低開發權限要求)

android:minSdkVersion="11"

android:targetSdkVersion="11" />

Activity消除ActionBar配置

android:name="com.rf.actionbardemo.MainActivity"

android:label="@string/app_name"

android:screenOrientation="landscape"

android:theme="@android:style/Theme.Holo.NoActionBar" >

添加ActionBar Item--源代碼

package com.rf.actionbardemo;

import android.os.Bundle;

import android.app.ActionBar;

import android.app.Activity;

import android.view.Menu;

import android.view.MenuInflater;

import android.view.MenuItem;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.Toast;

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Button showBtn=(Button) findViewById(R.id.showBt);

//ActionBar實例化

final ActionBar actionBar = getActionBar();

showBtn.setOnClickListener(new OnClickListener(){

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

//顯示頂部控件(ActionBar)

actionBar.show();

}

});

Button hideBtn=(Button) findViewById(R.id.hideBt);

hideBtn.setOnClickListener(new OnClickListener(){

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

//隱藏頂部控件(ActionBar)

actionBar.hide();

}

});

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

//添加活動項(Action Item)----代碼添加

// 每一個操作菜單的菜單項都可以成為ActionBar中的一個Action Item

super.onCreateOptionsMenu(menu);

MenuItem add = menu.add(0, 1, 0, "保存");

MenuItem open = menu.add(0, 2, 1, "打開");

MenuItem close = menu.add(0, 3, 2, "關閉");

add.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);

open.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);

close.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);

return true;

//添加活動項(Action Item)----xml文件

// 當使用xml文件創建菜單(menu)時,可以標記這些菜單項作為想要實現的Action Item

//MenuInflater inflater = getMenuInflater();

//inflater.inflate(R.menu.optionsmenu, menu);

//return true;

}

//ActionBar 點擊事件

@Override

public boolean onOptionsItemSelected(MenuItem item) {

// TODO Auto-generated method stub

switch(item.getItemId()){

case R.id.item1:

Toast.makeText(MainActivity.this, "ActionBar點擊事件響應", Toast.LENGTH_LONG).show();

default:

return super.onOptionsItemSelected(item);

}

}

}

Action事件

ActionBar中一個菜單項(即Action item)的觸發像以前版本中的活動菜單回調方法(onOptionsItemSelected())一樣。

當用戶選擇一個Fragment的菜單項時,首先會調用Activity的onOptionsItemSelected()方法,如果該方法返回false,則調用Fragment實現的onOptionsItemSelected()方法。

應用圖標

默認情況下,應用圖標在ActionBar的左側

當用戶點擊應用bar的時候,系統會調用你的Activity里面的onOptionsItemSelected() 方法里面的Android.R.id.Home ID(你的主ID)里定義的事件。我們可以重寫這個方法,添加一個條件執行該行為:讓它跳轉到這個應用的主Activity而不是返回的主屏幕。

如果選擇返回應用的主activity,最好的方式是在創建的Intent中添加FLAG_ACTIVITY_CLEAR_TOP這個標簽。

使用這個FLAG_ACTIVITY_CLEAR_TOP標簽,如果應用的主Activity已經在activity棧中存在,所有在其上的activity都會被銷毀,然后主activity會到棧頂,而不用創建主Activity的的新實例。

public boolean onOptionsItemSelected(MenuItem item)

{

switch (item.getItemId())

{

case android.R.id.home:

Intent intent = new Intent(this, MainActivity.class);

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

startActivity(intent);

return true;

default:

return super.onOptionsItemSelected(item);

}

}

當我們想實現用戶點擊ActionBar 圖標后返回前一個activity,可以通過在Actionbar設置setDisplayHomeAsUpEnabled(true) 來實現。

[java]

public class HomyUpActivity extends Activity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

}

@Override

protected void onStart() {

super.onStart();

ActionBar actionBar = this.getActionBar();

actionBar.setDisplayHomeAsUpEnabled(true);

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

MenuInflater inflater = getMenuInflater();

inflater.inflate(R.menu.optionsmenu, menu);

return true;

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值