Androidアプリ入門 No.50 PreferencesActivityのActivityから設定項目の取得
PreferencesActivity
Activityから設定項目の取得
Preferenceの最後として、Activityから設定項目の取得を確認する。設定画面は先のままとする。
まず、main.xmlを以下に示す。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Button android:id="@+id/button" android:text="設定画面" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/checkText" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/ringtoneText" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/editText" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/listText" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
次に、MainActivity.javaを以下に示す。
package sample.at; import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.preference.PreferenceManager; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class MainActivity extends Activity { private SharedPreferences prefs; private TextView checkText; private TextView ringtoneText; private TextView editText; private TextView listText; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); checkText = (TextView) findViewById(R.id.checkText); ringtoneText = (TextView) findViewById(R.id.ringtoneText); editText = (TextView) findViewById(R.id.editText); listText = (TextView) findViewById(R.id.listText); prefs = PreferenceManager.getDefaultSharedPreferences(this); setPreference(); Button button = (Button) findViewById(R.id.button); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { startActivity(new Intent(getApplicationContext(), ConfActivity.class)); } }); } @Override public void onResume() { super.onResume(); setPreference(); } private void setPreference() { checkText.setText("check: " + prefs.getBoolean("check", false)); ringtoneText.setText("ringtone: " + prefs.getString("ringtone", "[NO DATA]")); editText.setText("edit: " + prefs.getString("edit", "[NO DATA]")); listText.setText("list: " + prefs.getString("list", "[NO DATA]")); } }
基本的にはgetDefaultSharedPreferencesメソッドで設定ファイルが取得できので、それを利用するだけでよい。onResumeについては後述する。