Activity(画面)を簡単にダイアログにすることができます。
AndroidManifest.xmlのactivityタグに以下のように指定します。
android:theme="@android:style/Theme.Dialog"
例としてEditTextPreferenceの設定がされていればSummaryに表示するようにします。
リスナーをimplementsする場合
public class Setting extends PreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.pref);
PreferenceScreen ps = getPreferenceScreen();
EditTextPreference ep = (EditTextPreference)ps.findPreference("key");
if(ep.getText() != null && !ep.getText().equals("")) ep.setSummary(ep.getText());
}
@Override
protected void onResume() {
super.onResume();
getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
}
@Override
protected void onPause() {
super.onPause();
getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
}
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
if(key.equals("key")) {
PreferenceScreen ps = getPreferenceScreen();
EditTextPreference ep = (EditTextPreference)ps.findPreference("key");
if(ep.getText() != null && !ep.getText().equals("")) {
ep.setSummary(ep.getText());
} else {
ep.setSummary("デフォルトのSummary");
}
}
}
}
EditText editText = (EditText)findViewById(R.id.editText);
//複数行の場合、最大行数を設定
editText.setMaxLines(1);
//EditTextが未入力のときに表示させるヒントテキストを設定
editText.setHint("入力例");
入力モードを設定する
//数値入力 editText.setInputType(InputType.TYPE_CLASS_NUMBER); //URL入力 editText.setInputType(InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_VARIATION_URI); //パスワード入力 editText.setInputType(InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_VARIATION_PASSWORD); //メールアドレス editText.setInputType(InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS); //複数行入力 editText.setInputType(InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_FLAG_MULTI_LINE);
他にも設定値が多数あります。
参考:http://developer.android.com/intl/ja/reference/android/text/InputType.html
XMLで設定する場合
<EditText android:inputType="number" /> <EditText android:inputType="textUri" /> <EditText android:inputType="textPassword" /> <EditText android:inputType="textEmailAddress" /> <EditText android:inputType="textMultiLine" />
SharedPreferencesを使えば設定内容など、保存したいデータを簡単に保存できます。
設定画面を用意したい場合は設定を保存する [Preference]を参照してください。
今回は、アクティビティなしのデータ保存です。
データ用のクラスを作成し、保存・読み出しのメソッドを記述します。
データはキーと値をセットにし、shared_prefフォルダーにXML形式で保存されます。
ディレクトリについてはファイル入出力を参照してください。
続きを読む…»