私は、preferenceActivity を拡張するアクティビティを作成しました。そのアクティビティでは、アイテムのリストを表示するカスタム ダイアログを開きました。listview のアイテムをクリックするたびに、ダイアログが閉じました。その時点で、選択したアイテムを SharedPreference に保存して、そのアイテムをアプリケーション全体で取得したいと考えています。
しかし、私の問題は、選択したアイテムを SharedPreference に保存するにはどうすればよいですか??
次回アプリケーションを開くと、以前に選択したアイテムを取得できるはずです。
PreferenceActivity のコードは次のとおりです。
public class SettingsActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener
{
SharedPreferences myprefs;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.settings);
addPreferencesFromResource(R.xml.prefs);
PreferenceManager.getDefaultSharedPreferences(this).registerOnSharedPreferenceChangeListener(this);
Preference prefereces=findPreference("alertdialog_Font_Style");
prefereces.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
// TODO Auto-generated method stub
DialogFontStyle objdialog = new DialogFontStyle(SettingsActivity.this,R.style.CustomDialogTheme);
objdialog.show();
return true;
}
});
}
ダイアログのクラスは次のとおりです。
public class DialogFontStyle extends Dialog {
public DialogFontStyle(Context context, int theme) {
super(context, theme);
// TODO Auto-generated constructor stub
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.dialog_layout);
final String[] sizeType = new String[] {"a" , "b" , "c" , "d"};
final ListView lst = (ListView)findViewById(android.R.id.list);
ArrayAdapter<String> adapter = new ArrayAdapter<String> (context,android.R.layout.simple_list_item_1,sizeType);
lst.setAdapter(adapter);
lst.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
dismiss();
}
});
}
}
sharedpreferenceにデータを保存する解決策を教えてください。ありがとう。