jOE*_*jOE 38 android wallpaper preferences preference
我创建了一个Android的动态壁纸,我试图让用户选择从他们的手机图像并把它作为背景图像,但是当我发起的活动,开始有意挑选图片,我的共享偏好唐好像保存得当.
下面是我当用户按下优选项按钮,我开始活动的onCreate方法,并获得设备上的图像的路径onActivityResult(一切似乎工作).提交首选项后的println什么都没打印出来.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, SELECT_PICTURE);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if (requestCode == SELECT_PICTURE) {
Uri selectedImageUri = data.getData();
selectedImagePath = getPath(selectedImageUri);
preferences = getApplicationContext().getSharedPreferences(PREFERENCES_NAME, 0);
preferences.edit().putString(SETTINGS_BACKGROUND_IMAGE, "okok");
preferences.edit().commit();
System.out.println("Image" + preferences.getString(SETTINGS_BACKGROUND_IMAGE, ""));
}
}
finish();
}
Run Code Online (Sandbox Code Playgroud)
zrg*_*giu 86
从文档:
为这些首选项创建一个新的编辑器,通过该编辑器可以对首选项中的数据进行修改,并将这些更改原子地提交回SharedPreferences对象.
由于这是一个新的Editor实例,您的代码应该更像这样:
preferences = getApplicationContext().getSharedPreferences(PREFERENCES_NAME, 0);
SharedPreferences.Editor editor = preferences.edit();
editor.putString(SETTINGS_BACKGROUND_IMAGE, "okok");
editor.apply();
Run Code Online (Sandbox Code Playgroud)
jos*_*hus 16
尝试另一种初始化SharedPreferences变量的方法:
SharedPreferences sf = PreferenceManager.getDefaultSharedPreferences(this);
Run Code Online (Sandbox Code Playgroud)
你也可以用sp写作到sf sf.edit().putString(string, value).commit();
| 归档时间: |
|
| 查看次数: |
43193 次 |
| 最近记录: |