Androidの中でアクションバー

アンドロイドAndroidアプリケーションのタイトルバーのアクションバーには、迅速に私たちを可能にします, より便利に. ここではGmailでアクションバーの例です.

アンドロイドでアクションバー

この記事では、作成し、可能なアクションバー簡単に動作するようにご案内します.

1. アクションバーを作成します。
2. ボタンを追加 (メニュー) アクションバーで
3. アクションバーメニューのイベントの取得
4. アイコンの上に戻るボタンを作成します。
5. SearchView TRENアクションバー
6. シェアTRENのアクションバー

アクションバーにはアンドロイド以降に追加され 3.0 以上, しかしで小さくAndroidのバージョンも使用して行うことができます “ライブラリのサポート”.

1. アクションバーを作成します。


アンドロイドでアクションバーを作成します。 3.0 以上
非常にシンプルな仕事, あなたが選択した新しいプロジェクトを作成するときに、最小のバージョンは、そのアプリケーションを実行することができます 3.0 (以上) デフォルトでは、我々はその後、アクションバーを取得.

アクションバーを作成

あなたはファイルで見ることができるプロジェクトを作成した後、この行を持つことになりますAndroidMainfest.xml

android:minSdkVersion="11"

小さいアンドロイドでアクションバーを作成します。 3.0
通常は小さいアンドロイドを使用してプロジェクトを作成するとき 3.0 それが自動的に作成されます “ライブラリ” appcompat_v7 そして、ActionBarActivity MainActivityから延びは、すぐに他に何もする必要はありませんでしょう. それが自然に出てくるていない場合は場合は、次の手順を実行する必要があります:
B1は、SDKマネージャTU libのサポートをダウンロード (なしの場合).

それらの木のビエンアンドロイド

B2はワークスペースにライブラリを追加します。: ファイル -> インポート -> ワークスペースに既存のプロジェクト. 次にクリック . 次の画面で[参照]を選択し、選択します “いいえAndroidのSDKフォルダません” \SDK エクストラアンドロイドサポート V7 appcompat VA [OK]をクリックします。.

サポートライブラリを追加します。

B3はプロジェクトライブラリに追加: プロジェクトを右クリックし、[プロパティ]を選択し、アンドロイドに移動. [追加]をクリックしますとappcompat_v7選択.


B4: 戻るMainActivity.javaファイルと継承ActionBarActivityを行います

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends ActionBarActivity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}
}

それではOKです. 今すぐ実行するプロジェクトの実施は、このアクションバーのような単純なプログラムになります. もちろん、これらのボタンは何も持っていません, 我々は今、実現するために開始します.
アクションバー

2. メニューの作成


本質的には、メニューがある参照アクションバーボタン. だから、唯一のメニューの追加が完了されるボタンを追加します. 例えば、我々はより多くを必要とします 2 メニュー 検索シェア
B1: MOファイルmain.xml (あなたは混乱action_main.xmlを助けるために名前を変更する必要があります) 通話中/ resを/メニュー/以下に項目を追加します:

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

    <!--
    Trong mỗi item có 
    id: để truy xuất kết nối code java
    icon: icon của menu
    showAsAction: trạng thái cho phép hiển thị trên actionbar không
    title: tiêu để dạng text
    -->

    <item
        android:id="@+id/action_search"
        android:icon="@android:drawable/ic_menu_search"
        android:showAsAction="ifRoom"
        android:title="search"/>
    <item
        android:id="@+id/action_share"
        android:icon="@android:drawable/ic_menu_share"
        android:showAsAction="ifRoom"
        android:title="share"/>

</menu>

B2: 戻るMainActivity.javaファイルとメソッドを書き換えます onCreateOptionsMenu

@Override
public boolean onCreateOptionsMenu(Menu menu) {
	// Inflate the menu; this adds items to the action bar if it is present.
	getMenuInflater().inflate(R.menu.action_main, menu);
	return true;
}

だから我々は、このようなメニューを得ます:

メニューアクションバー

小さいAndroid用 3.0 あなたは、次のファイルaction_main.xmlのビットを変更する必要があります:

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

    <!--
    Trong mỗi item có 
    id: để truy xuất kết nối code java
    icon: icon của menu
    showAsAction: trạng thái cho phép hiển thị trên actionbar không
    title: tiêu để dạng text
    -->
    <item
        android:id="@+id/action_search"
        android:icon="@android:drawable/ic_menu_search"
        android:title="search"
        app:showAsAction="ifRoom"/>
    <item
        android:id="@+id/action_share"
        android:icon="@android:drawable/ic_menu_share"
        android:title="share"
        app:showAsAction="ifRoom"/>

</menu>

注意: あなたは、の値を設定することができます showAsAction た “常に” それは、常に表示されますか、 “決して” アクションバーに表示されないように, あなたは、メニューボタンを押したときにのみ表示.

3. イベントメニューを取得


メニュー項目の開始イベントを作成するには, 我々は方法で実行 onOptionsItemSelected MainActivity.javaで, あなたが望む仕事を実行する対応するメニューをクリックすると仮定する, そのまた、デモはトーストオフラインを示しています.

@Override
public boolean onOptionsItemSelected(MenuItem item) {
	// Handle presses on the action bar items
	switch (item.getItemId()) {
	case R.id.action_search:
		search();
		return true;
	case R.id.action_share:
		share();
		return true;
	default:
		return super.onOptionsItemSelected(item);
	}
}

private void search() {
	Toast.makeText(this, "You click search", Toast.LENGTH_SHORT).show();
}

private void share() {
	Toast.makeText(this, "You click share", Toast.LENGTH_SHORT).show();
}

4. アプリケーションでの戻るボタンのアイコンを作成します。


特定の活動に適用されると家ではありません. あなたは戻って、このような矢印を使用してアプリケーションのアイコンを気づくでしょう:
ボタンアップ
このボタンは、画面に戻ることができます (アクティビティ) その前に、または任意の活動. 一般的には、お使いの携帯電話の[戻る]ボタンに似ています. しかしあなたができる多くの違いがあります こちらをご覧ください

acitivityで、あなたは、ボタンを挿入します, あなただけ呼び出すことによって、それを放棄する必要があります:

actionBar.setDisplayHomeAsUpEnabled(true);

例えば、私たちのアプリケーションでより多くを作成します 1 ボタン, ボタンをクリックすると、他のacitivityに切り替わりますItem1Acitivtyです, 以下のボタンを書く私に表示したいItem1Acitivty:

public class Item1Activity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_item1);

		// lấy ActionBar
		ActionBar actionBar = getActionBar();
		// hiển thị nút Up ở Home icon
		actionBar.setDisplayHomeAsUpEnabled(true);

		// Nếu bạn dùng thư viện hỗ trợ cho android nhỏ hơn 3.0
		/*
		 * ActionBar actionBar = getSupportActionBar();
		 * actionBar.setDisplayHomeAsUpEnabled(true);
		 */
	}
}

だからショーは終了しました, しかし、我々はそれを何の現象を押されていないとき, 私たちは、属性を設定する必要があります parentActivityName 我々は先のアクティビティインデックス, ここMainActivityです, あなたが他の活動を指すことができます.

<activity
    android:name=".Item1Activity"
    android:label="@string/title_activity_item1"
    android:parentActivityName="cachhoc.net.tutactionbar.MainActivity" >
</activity>

しかし、用 アンドロイド 4.0 バックダウン その後、我々は次のように固有のメタデータ部分を宣言する必要があります:

<activity
    android:name=".Item1Activity"
    android:label="@string/title_activity_item1"
    android:parentActivityName="cachhoc.net.tutactionbar.MainActivity" >
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value="cachhoc.net.tutactionbar.MainActivity" />
</activity>

今、私たちは前にそれを使用することができます.

5. SearchView TRENアクションバー


AndroidはActonBarにいくつかの迅速な行動を提供, 検索メニューをクリックしたとき、私は、検索ボックスを作成するために、ご案内します. 検索が簡単にフレーミングです, あなただけの次/res/menu/action_main.xmlファイルに検索項目を書き換える必要があります:

<!--
giá trị collapseActionView trong showAsAction 
cho biết nó có thể đóng khi ấn vào bất kỳ nút nào
-->
<item
    android:id="@+id/action_search"
    android:actionViewClass="android.widget.SearchView"
    android:icon="@android:drawable/ic_menu_search"
    android:showAsAction="ifRoom|collapseActionView"
    android:title="search"/>

Android用 3.0 以下は、次の操作を行います:

<item
    android:id="@+id/action_search"
    android:icon="@android:drawable/ic_menu_search"
    android:title="search"
    app:actionViewClass="android.support.v7.widget.SearchView"
    app:showAsAction="ifRoom|collapseActionView"/>

メニューをクリックするとだから我々は、このような検索をsearchviewいます. そして、まだ検索は、​​続きを読むすべて完了 ActioBarでSearchViewを使用してください (更新)

アクションバーでsearchview

6. アクションバーの[共有]メニューを使用して


Androidのは、私たちはソーシャルネットワークを経由して、いくつかの情報や、特定のサービスを共有することができます. この例では、テキストのみを共有実装します.

行うには、次のようにメニュー項目の変更を行うために私たちのメニューを共有します:

<item
        android:id="@+id/action_share"
        android:actionProviderClass="android.widget.ShareActionProvider"
        android:showAsAction="ifRoom"
        android:title="Share"/>

MainActivity及び補修方法の隣に onCreateOptionsMenu

Android用 3.0 ライブラリのサポートを使用して

<item
        android:id="@+id/action_share"
        android:icon="@android:drawable/ic_menu_share"
        android:title="share"
        app:actionProviderClass="android.support.v7.widget.ShareActionProvider"
        app:showAsAction="ifRoom"/>

アクションバーでの共有メニュー

続きを読む: アンドロイドでアクションバー