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を使用してください (更新)
6. アクションバーの[共有]メニューを使用して
Androidのは、私たちはソーシャルネットワークを経由して、いくつかの情報や、特定のサービスを共有することができます. この例では、テキストのみを共有実装します.
行うには、次のようにメニュー項目の変更を行うために私たちのメニューを共有します:
<item android:id="@+id/action_share" android:actionProviderClass="android.widget.ShareActionProvider" android:showAsAction="ifRoom" android:title="Share"/>
MainActivity及び補修方法の隣に 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); MenuItem item = menu.findItem(R.id.action_share); ShareActionProvider myShareActionProvider = (ShareActionProvider) item .getActionProvider(); Intent myIntent = new Intent(); myIntent.setAction(Intent.ACTION_SEND); myIntent.putExtra(Intent.EXTRA_TEXT, "Đây là đoạn text tôi muốn chia sẻ"); myIntent.setType("text/plain"); myShareActionProvider.setShareIntent(myIntent); return true; }
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"/>
/* lưu ý: import android.support.v7.widget.ShareActionProvider; */ @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.actionbar_menu, menu); // Set up ShareActionProvider's default share intent MenuItem shareItem = menu.findItem(R.id.action_share); ShareActionProvider myShareActionProvider = (ShareActionProvider) MenuItemCompat .getActionProvider(shareItem); Intent myIntent = new Intent(); myIntent.setAction(Intent.ACTION_SEND); myIntent.putExtra(Intent.EXTRA_TEXT, "Đây là đoạn text tôi muốn chia sẻ"); myIntent.setType("text/plain"); myShareActionProvider.setShareIntent(myIntent); return super.onCreateOptionsMenu(menu); }
続きを読む: アンドロイドでアクションバー
アクティビティが伸びるときに、なぜ彼の復帰のヌルを求めて自分をgetActionBar? ありがとう
ノーアクションバーアクティビティあなたああので、.
私はあなたにもその活動を使用している参照してください。 ?
彼の後継者ActionBarActivityオフライン.
つまり、あなたの時計のプログラミングはアンドロイドいくつかを実行している携帯電話に確認します?
私はちょっとお聞きしたいのは場所で右上隅のメニューサインです … それをクリックしたときにタイトルを隠さ項目のリストが表示されますアクションバー. これを修正する方法?
これはどこのことではないせいです.
彼の負荷 1 滴を参照するには、アプリリストメニュー 1 アイテム. 確かに私はいくつかの機能を逃しました?
[IMG]HTTP://vietup.net/files/41b48bb9ac3d8eadc4d3547dd39d290f/e37ecd00cb27a33f043bfebf4c853be2/Screenshot_2016-07-05-23-19-27-996.png[/IMG]