設定モードの作り方 (設定画面)

 アプリの動作設定等を行う画面。
 なんとなくわかってきたので、必要手順等、作成方法をまとめておく。
 なお、「設定モード」としたのは、画面のみの作成に止まらない、全体的なものであるから。

 以下の作業に、特に順番はない。

◆設定画面の作成

[ AndroidManifest.xml ]
●Activity の追加

 PreferenceActivity を追加する。
●↓のように、の中に記述。

 AndroidManifest.xml

1
2
3
<application>
    <activity android:name="MyPrefs"></activity>
</application>

 ※.は、既存のもので新設はしない。
 ※.”MyPrefs” は、PreferenceActivity のclass名。(任意)

[ MyPrefs.java ] extends PreferenceActivity
●PreferenceActivity の作成
 PreferenceActivity を継承したclassを作成する。

●PreferenceActivity の役割
 有体にいえば、「設定画面の起動(表示)」。
 画面内容自体は、別のxmlに記述する。
●xmlの指定
 MyPrefs.java

1
addPreferencesFromResource(R.xml.prefes);

※.prefes は、画面内容のxml名。(任意)

[ prefes.xml ]
● prefes.xml の作成
 ファイル名に特に決まりはない。
 PreferenceActivity から引用されるので、それの記述に合わせる必要がある。

・作成場所
  /res/xml/

● prefes.xml の役割
 有体にいえば、設定画面の内容。
 記述内容がそのまま画面に表示される。
 ※.記述内容についてはここでは解説しない。

◆設定画面の実行(表示)

●概要
 設定画面の実行は、Intent によって行う。
 Intent を作成し、そのIntent に PreferenceActivity を割りつける、ことになる。
 例えばボタンであれば、onClick()で↓を実行する。

 <例>

1
2
Intent intent = new Intent(this, com.migimaki.android.MyPrefs.class);
startActivity(intent);

 ※.Intent の第二引数は、パッケージ名となることに注意。

 ざっと、こんなところだろうかね。
 動作から推察するに、「アプリmainのActivityから、別のActivityを実行する」といったところかな。
 フツウのclassとちがって、呼び出し側・実行側に内包されない。

 そこでちょっとした問題。
 「Activity の遷移」なので、”戻る”ボタンで戻れてしまうのだ。
 便利といえば便利なのだが、ゲーム系だと予期しない動作を引き起こしかねない。
 ちょっと注意が必要だね。

参考
Androidアプリの設定画面を作成する