
AndroidでXMLファイルからオプションメニューを作るサンプル#tryOptionMenu00


オプションメニューをXMLファイルから作る。
手書きでIDを指定してメニューを作るのはちょっとめんどうなので、menu.xmlを作ってメニューが作成されるタイミングでそれを呼び出すようにする。
項目をクリックされた場合は新しくブラウザを開いて指定のURLを開くようにする。
●大事なところ
resを右クリックして[新規]→[その他]から[Android XML ファイル]を選ぶ。
リソースタイプを[menu]にしてファイル名を設定する。
項目がクリックされたときはonMenuItemSelectedのXML内で割り当てたIDで判別する
●関連項目
menu.xml
onMenuItemSelected
onCreateOptionsMenu
ブラウザで指定のページを開く
●開発環境
Eclipse IDE バージョン: 3.7 Indigo Service Release 1
ターゲットプラットフォーム: 2.1
API レベル: 7
package trial.sample.tryoptionmenu00; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; public class TryOptionMenu00Activity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } //////////////////////////////////////////////////////////// // メニューがつくれれるタイミングで呼ばれる @Override public boolean onCreateOptionsMenu(Menu menu) { // XMLファイルからメニューを登録する MenuInflater inflater = this.getMenuInflater(); inflater.inflate(R.menu.option_menu, menu); return super.onCreateOptionsMenu(menu); } //////////////////////////////////////////////////////////// // メニューの項目が押されたときに呼ばれる @Override public boolean onMenuItemSelected(int featureId, MenuItem item) { // XML内の割り当てたIDで処理を分ける switch (item.getItemId()) { // googleへ移動 case R.id.item_go_to_google: this.navigate("http://www.google.co.jp/"); break; // yahooへ移動 case R.id.item_go_to_yahoo: this.navigate("http://www.yahoo.co.jp/"); break; } return super.onMenuItemSelected(featureId, item); } //////////////////////////////////////////////////////////// // ブラウザを開いて指定のURLへ移動する private void navigate(final String url) { Uri uri = Uri.parse(url); Intent intent = new Intent(Intent.ACTION_VIEW, uri); this.startActivity(intent); } }
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/item_go_to_google" android:title="Googleへ移動"></item> <item android:id="@+id/item_go_to_yahoo" android:title="Yahooへ移動"></item> </menu>
AndroidのEditTextの数値の制限(範囲を限定)をTextWatcherを使ってするサ... AndroidアプリでクリップボードにClipboardManagerを使ってテキストを書き...