この内容は、ViewSwitcher を使用した2画面アプリ (2) : 画面部分の作成と画面切り替えテスト『画面の作成』に続いています。2画面アプリと言えば、もう一つの Activity を作成して、Intent でデータを引き渡すタイプですが、初心者にとってちょっと敷居が高いので、ViewSwitcher を使用します。ViewSwitcher は2画面のみ対応ですが、同系統(ViewAnimator を継承)の ViewFlipper を使用すれば複数画面も簡単に作成できます。 この場合、見えている画面は一つでも常に同じ Activity で画面を参照できるので、大きな画面に全て表示されていると思って普通にコードが書けます。ですから、そこが楽なぶん、Helper クラスを作成して、画面の処理は全てそこにまかせるという工夫に力を入れたいと思います。 1) メニューの作成 メニューは、その場面で必要な画面切替えに使用します。画面上に機能に直接関係無いボタンを作りたく無いので作成します。Android Studio のテンプレートとしては 『Empty』を使用しますかので、メニュー部分は自分で作成する必要があります。 ▼ menu フォルダの作成 (最後に OK で menu フォルダがリソースに作成されます) ▼ メニューフォルダで、new => Menu resource file でメニュー定義を作成 メニューのファイル名は、何でもいいですが、通常の画面と同じく XML で作成されるので、小文字のアルファベットで、word 間は _(アンダーバー)を使います。ここでは、Android が一般的に使う 『menu_main』を使用しています メニューアイテムの追加 デザイナの画面に、MenuItem をドラッグ&ドロップして追加します。左下の『コンポーネント・ツリー』は動作しないので注意です。 次に右サイドの『プロパティ』で、id を入力します。icon と showAsAction は自由に選択してもいいのですが、ここでは以下のようにエディタで定義します
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/action_1" android:icon="@android:drawable/btn_dialog" android:title="戻る" app:showAsAction="always"/> <item android:id="@+id/action_2" android:title="新規登録"/> </menu>
メニューの実行部分の作成 機能的には一度作ってしまえば変更する事は殆ど無いので、MainActivity の最後に追加します。(helper のメソッドは後で作成するのでコメントにしています)
// ******************************* // メニュー // ******************************* @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.action_1) { Log.i("lightbox","処理1"); // helper.showFirstView(); return true; } if (id == R.id.action_2) { Log.i("lightbox","処理2"); // helper.showInsertView(); return true; } return super.onOptionsItemSelected(item); }
|
【2017 Android Studioの最新記事】
- 別に納品するわけでは無いので、Android の ListView のカスタマイズなんてこれで十分でしょ / TestArrayAdapter バージョン2
- Java : Class 構造より、update 文を作成する
- ViewSwitcher を使用した2画面アプリ (5) : SQLiteデータを更新する
- ViewSwitcher を使用した2画面アプリ (4) : SQLiteデータをインポートしてリストビューに表示する
- Android Studio にインポートして使用する SQLite データベースを MDB より作成する VBScript
- ViewSwitcher を使用した2画面アプリ (3) : 画面部分の作成と画面切り替えテスト『画面をコントロールする Helper クラスの作成』
- ViewSwitcher を使用した2画面アプリ (2) : 画面部分の作成と画面切り替えテスト『画面の作成』
- OkHttp を使用した HttpAccess クラスで Web 上の 画像をダウンロードして表示するテンプレート
- OkHttp を使用した HttpAccess クラスで Web 上の PHP アプリに対してファイルをアップロードするテンプレート
- OkHttp を使用した HttpAccess クラスで Web 上の掲示板に投稿(POST)するテンプレート
- OkHttp を使用した HttpAccess クラスで Web 上のデータを取得(GET)して ListView を表示するテンプレート
- Okhttp を使用した、GET、POST、ファイルアップロードを楽に実装できる HttpAccess クラス
- Android の assets フォルダーに保存した 400x320 の画像ファイルの扱い
- Android の drawable フォルダーに保存した 400x320 の画像ファイルの6種類の扱いと Density
- Android での保存用テキストデータの扱いを okio で簡素化する
- Android 6.0 : テストの為の Runtime Permission の対応を自動化するテンプレート
- Android Studio : Runtime Permission 等の裏方作業を MainActivity にさせて、本来の処理は継承したサブクラスで行う( カメラを呼び出して画像を保存させ、I..
- Android 6.0 エミュレータで 複数の Runtime Permission の対応を簡潔に吸収するクラス( CheckMyPermission )
- Android 6.0 の Runtime Permission に対応する前に、AndroidManifest.xml に権限の記述の必要無いプライベートな書き込みで情報を収集する
- Android Studio : エミュレータで Notification(通知)のテスト