今回は別画面のオプションメニューから設定画面を表示させてみます。
イメージがつきやすいように実行結果から。
まずはアプリケーションを起動します。
画面には特に何も表示させていません。
メニューボタンを押すと、オプションメニューが表示されます。
オプションメニューの設定ボタンをタップすると、設定画面が表示されます。
単純な遷移ですが、どんなアプリを作る場合でも役に立ちますので、
しっかり押さえていきます。
次にJavaのソースコードを見ていきます。
import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; public class PreferenceSampleActivity extends Activity { private final int REQUEST_CODE=0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } @Override public boolean onCreateOptionsMenu(Menu menu) { MenuItem menuItem = menu.add( Menu.NONE, Menu.FIRST, Menu.NONE, "Preference"); menuItem.setIcon(android.R.drawable.ic_menu_preferences); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case Menu.FIRST: Intent intent = new Intent(this, PreferenceSample01.class); startActivityForResult(intent, REQUEST_CODE); return true; } return false; } @Override protected void onActivityResult( int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (REQUEST_CODE == resultCode) { // TODO 設定画面の変更値を受け取る } } }
[17行目]
まずはオプションメニューの設定を、onCreateOptionsMenuメソッドを
オーバーライドする事で行っています。
MenuItemの生成と、アイコンの設定ですね。
[28行目]
次にオプションメニューのアイテムが選択された場合の手続きを
onOptionsItemSelectedメソッドをオーバーライドする事で行っています。
onCreateOptionsMenuで作成されたアイテムを選択された場合に、
Intentを利用して前回作成した設定画面へ遷移させています。
※switch分を使用しているのはオプションメニューのアイテムが増えることを想定して、
拡張出来るようにしている為です。
ここまでで設定画面への遷移は出来ます。
onActivityResultメソッドをオーバーライドしていますが、
今回は何もしていません。
次回くらいに設定画面で入力した内容を使って動作させたいので、記載してます。
"res/layout/preference.xml"は前回と同様です
(→ こちらをご参照あれ)。
"res/layout/main.xml"は空っぽですが、一応次の通りです。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > </LinearLayout>
今回は初めて2画面使用しましたので、
"AndroidManifest.xml"も記載します。
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="jp.gr.java_conf.siroco.preference.sample" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".PreferenceSampleActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".PreferenceSample01" /> </application> </manifest>
以上です。
PreferenceAcitivityで設定画面を作るテクニックも重要ですが、
表示させる工程も必要ですので、この動作をチョイスしました。
いきなり設定画面ってアプリもそうないですからね~
sirocoの事を少し書くと、最近仕事が忙しくなってきたので、
なかなか学習時間がとれません。。。
ただ、アプリ作りの時間はsirocoにとって
とても楽しい時間にもなっているので、
出来る限りBlogもUPしていこうと思います。
0 件のコメント:
コメントを投稿