我创建了扩展preferenceActivity的活动。在那个活动中,我打开了自定义对话框,显示了项目列表。每当我点击列表视图中的项目时,对话框就会关闭。那时我想在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();
}
});
}
}
请给我一些解决方案,以便在共享偏好中存储数据。 感谢名单。
答案 0 :(得分:0)
您有几种选择:
您可以扩展ListPreference类来自定义其外观或行为,而不是创建自定义对话框,而是依赖于settings screens使用的默认机制。然后由ListPreference超类管理保存。
您可以通过获取调用Context.getSharedPreferences()方法的共享首选项来手动存储首选项,然后获取和Editor,这将允许您将值放入共享首选项并提交这些更改
要检索以前存储的项目,您只需要再次获取SharedPreferences对象并调用所需的get ..()方法来获取以前存储的密钥。
答案 1 :(得分:0)
要编写要共享首选项的内容,请使用以下代码:
SharedPreferences mPrefs = PreferenceManager.getDefaultSharedPreferences( mContext );
SharedPreferences.Editor editor = mPrefs.edit();
editor.putBoolean( KEY, VALUE );
editor.commit();
mContext应该是您的活动或应用程序的上下文而不是对话框。或者,如果您的对话在您的活动中,请使用SettingsActivity.this
或在onCreate()
上创建类成员mContext和initi