※ Android の最新(2012年6月末)の開発環境に関して SkyDrive へ移動 普通にプロジェクトを作成すると以下のようになります。メニューの XML は最初から作成されていて、メニューが作成される最初のイベント(onCreateOptionsMenu)も作成されていますので、onOptionsItemSelected を追加して、メニューの処理を実装します。 ▼ ifRoom フラグの意味 それのための余地がある場合にのみ、アクションバーでこの項目を配置します。 ※ この設定により、以降のメニュー位置になります Google、AndroidのMenuボタンに“告別Googleは既存アプリのMenuボタンが担っていた機能を、「ActionBar」クラスを使って組み込み直すよう勧めている。
package com.example.androidapp; import android.os.Bundle; import android.app.Activity; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // 選択されたメニュー項目の ID int menuId = item.getItemId(); // 選択されたメニュー項目に表示されているテキスト String menuText = item.getTitle().toString(); // 画面上のテキストフィールド EditText editText = (EditText)findViewById(R.id.editText1); // 画面上画像表示用コントロール ImageView imageView = (ImageView)findViewById(R.id.imageView1); switch(menuId){ case R.id.menu_action1: Log.i("DEBUG:", "処理1が選択されました"); // 実際の番号でアイコンリソースを指定 imageView.setImageDrawable(getResources().getDrawable(17301555)); break; case R.id.menu_action2: Log.i("DEBUG:", "処理2が選択されました"); // 定義IDでアイコンリソースを指定 imageView.setImageDrawable(getResources().getDrawable(android.R.drawable.ic_menu_add)); break; case R.id.menu_post: // 画面遷移用 Log.i("DEBUG:", "投稿画面へ移動します"); break; } // 選択されたメニュー項目に表示されているテキストを // テキストフィールドに表示 editText.setText(menuText); return true; } }
ここでは、『投稿』で画面遷移を想定しています。17301555 は、android.R.drawable.ic_menu_add の実際の値です。 画面定義
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:padding="20px" android:text="CTRL+F12でエミュレータを横にすると、メニューにテキストが付加されます" /> <EditText android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_below="@+id/textView1" android:ems="10" /> <ImageView android:id="@+id/imageView1" android:layout_width="48px" android:layout_height="48px" android:layout_below="@+id/editText1" android:layout_marginTop="24dp" android:src="@drawable/ic_action_search" /> </RelativeLayout>
メニュー項目定義
<menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/menu_post" android:icon="@android:drawable/ic_menu_save" android:title="投稿" android:showAsAction="ifRoom|withText" /> <item android:id="@+id/menu_action1" android:title="処理1" android:orderInCategory="100" android:showAsAction="never" /> <item android:id="@+id/menu_action2" android:title="処理2" android:orderInCategory="100" android:showAsAction="never" /> </menu>
android:drawable の android は、package を意味しています。ic_menu_save 以外もたくさん定義されています。 関連する Android ドキュメント Action Bar 関連する記事 android-binding を使って Windows C#(XAML) のようなバインド処理の実装
|
【Androidの最新記事】
- デバイスを探す / Find My Device - Google / Android Find
- JavaScript から Android へアクセス
- Monaca と 本当の 『Onsen UI最小限のテンプレート』
- Android 5.1 リリース済み。SDK( android-sdk_r24.0.2-windows.zip ) でまずエミュレータ作って、あとから Eclipse と Android Studio..
- クラウドでアプリを作成してスマホで動作させる『Monaca』を Android エミュレータの 5.1 で動作確認しました
- Android で Post と Get
- 別の ADT(Android) で作成されたワークスペースを最新の ADT で開く場合の操作方法
- Android : ListView Twitter 検索テンプレート
- トラブル : AndroidManifest.xml に XML 宣言があるとエラーになる???
- Twitter API の自分のアプリのトークンを使って投稿するだけの class Android_Twitter
- Android 単純リストビューを google-gson で最速構築
- Android をテストするのにほんの少し楽になるかもしれないクラス
- Android : Google Spreadsheets API version 3.0でGoogleスプレッドシートを参照
- Android 4.2.2(ADT) : class MyDatePicker extends DatePickerDialog
- Android : 日付ダイアログをインナーで使う( 完了ボタンをクリックした場合としない場合の対応 )
- Android(4.2.2) ADT から Post や Get をできるかぎり簡単にするサンプル
- Android ADT : 単純画面遷移
- HashMap の Key と Value をそれぞれソートして、最終的には 配列に変換して テンプレートを使って for ループを簡単に記述する
- ADT Eclipse : sysout テンプレートの変更
- Android(ADT Eclipse) 用 ボタンイベントテンプレート