世界を目指せ!Androidアプリ開発入門

第10回 設定画面の作り方

この記事を読むのに必要な時間:およそ 2 分

設定画面で使えるUIパーツ

ファイルが作成されると,画面3のような編集画面が表示されるはず。

画面3

画面3

このままでは,設定画面の土台だけなので[Add...]をクリックして,設定画面に必要なユーザインターフェースパーツを追加して,設定画面を構築していきます。以下は,設定画面で使える主要なユーザインターフェースのパーツです。

  • CheckBoxPreference
  • EditTextPreference
  • ListPreference
  • PreferenceCategory

これらを組み合わせて,設定画面を作成することになりますが,それぞれどのような役割を持つか,画面と一緒にご紹介します。

CheckBoxPreference

ON/OFFの機能を持つチェックボックスです。

パーツをタップすると,チェックボックスがONとOFFに切り替わります。

画面4

画面4

EditTextPreference

文字列が入力できるテキスト編集エリアです。

項目をクリックすると,画面5のような編集エリアを持つダイアログが表示されて,文字が入力できます。

画面5

画面5

ListPreference

項目を一覧表示し,選択を提示します。

項目をクリックすると,画面6のようなリストを持つダイアログが表示されます。

リストの表示内容や選択した際の値などは,XMLファイルに記述することで設定できます。

画面6

画面6

PreferenceCategory

設定項目をひとまとめにして,見やすく表示します。

画面7のようなバンドが,まとめた項目の上部に表示されます。

画面7

画面7

設定画面を設計していると,主画面から副画面へ遷移するような画面を作りたいこともあると思います。作り方は簡単で,画面8のようにPreferenceScreenを入れ子にすることで簡単に実現できます。

画面8

画面8

保存した値にアクセスする

EditTextPreferenceで入力した文字列,ListPreferenceで選択した値は,Preferencesファイルに自動保存されます。このファイルへのアクセスは,SharedPreferencesを使います。

コードは,以下のようになります。

SharedPreferences pref;

pref = this.getSharedPreferences( "com.exsample.myapp_preferences",
                MODE_PRIVATE );
String val = pref.getString( "pref_edit1", "" );

コードを順に見ていきます。

getSharedPreferencesの第一引数には,Preferencesファイルの名前を指定します。ファイル名は,規則性があり「パッケージ名+"_preferences"」となります。第二引数には,処理モードを指定します。次に,pref.getStringで,PreferencesファイルからStringの値を読み出します。第一引数には,設定画面に配置したユーザインターフェースパーツのキー名を指定し,第二引数は値が読み出せなかった場合の代替え値を指定します。

設計した画面でアクティビティを作成する

編集したXMLで,設定画面のアクティビティを作成するのは,以下のようなコードになります。

public class AppPref extends PreferenceActivity
{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate( savedInstanceState );

        addPreferencesFromResource( R.xml.sample );
    }
}

コードを順に見ていきます。

AppPrefクラスは,PreferenceActivityを継承しており,通常のアクティビティとは異なるところがポイントです。

onCreateメソッドで,addPreferencesFromResourceを呼び出し,第一引数に編集したXMLを指定します。なんと,これだけで設定画面を作ることができます。独自に設定画面を用意するのも良いのですが,PreferenceActivityを使えば,簡単・確実に実装できます。

まとめ

今回は,設定画面の作り方をご説明しました。

Android OSには,簡単に設定画面が実装できる枠組みが用意されており,値の保存も自動的に行ってくれるので,この枠組みをうまく活用してアプリを仕上げてください。また,冒頭で書いたように,設定項目の必要性なども十分吟味してください。

著者プロフィール

傍島康雄(そばじまやすお)

5月30日生まれ。

モバイルデバイスが大好物。それで動くアプリの開発に喜びを感じている。スマートフォン前夜のWindows Mobile,PalmOSのアプリに情熱を傾けていたが,最近は停滞気味でコードを書くよりも文章を書く機会が多くなっており,文章を書くのも,プログラミングと同じくらい奥深い作業だと感じている。

ブログ:http://yasuos.com/blog/

コメント

コメントの記入