我试图找出如何通过点击项目按钮来存储图像URL,以便其他类可以访问它们。
我环顾四周,看到最好使用共享偏好来实现这一目标。
我之前从未使用过共享首选项,因此我有点困惑,因为我想从我称之为“mImageUrl”的字符串中获取URL
我知道我的字符串“mImageUrl”会给我当前正在查看的图像的URL,所以我想以某种方式将String / URL从我的String存储到共享首选项,以便特定的URL可以通过另一个类使用。
使用共享首选项是实现我的要求的好方法, 任何指导将不胜感激
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.SetWallpaper:
new SetWallpaperAsync(getActivity()).execute(mImageUrl);
break;
case R.id.SaveWallpaper:
new SaveWallpaperAsync(getActivity()).execute(mImageUrl);
break;
case R.id.FavouriteWallpaper:
//Use shared preferences here somehow:
SharedPreferences preferences = this.getActivity().getSharedPreferences("pref",0);
SharedPreferenceUtil.setSharedPreference(context, "ImageKey", mImageUrl);
String url = SharedPreferenceUtil.getSharedPreference(context,"ImageKey",null);
if(url != null){
// set image source here..
}
break;
}
return super.onOptionsItemSelected(item);
}
答案 0 :(得分:2)
试试这个 在一项活动中:
SharedPreferences sp;
SharedPreferences.Editor edit;
sp = getSharedPreferences("enter", MODE_PRIVATE);
edit = sp.edit();
edit.putString("imagerul", user_validate);
edit.commit();
在下一个活动中:
SharedPreferences sp = getSharedPreferences("enter", MODE_PRIVATE);
sp.getString("imageurl", "fdgf"));
答案 1 :(得分:2)
试试这段代码:
保存在SharedPreferences
:
SharedPreferences prefs;
prefs = PreferenceManager.getDefaultSharedPreferences(contextActivity);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("imgUrl", UrlString);
editor.commit();
要检索价值:
prefs = PreferenceManager.getDefaultSharedPreferences(contextActivity);
prefs.getString("imgUrl", null);
答案 2 :(得分:1)
您可以简单地实现一个处理共享首选项的get / set操作的类。
我将提供一个课程,以便您可以轻松地集成到您的项目中。
这是我们的SharedPreferenceUtil
课程
import android.app.Application;
import android.content.Context;
import android.content.SharedPreferences;
public class SharedPreferenceUtil {
public static String getSharedPreference(Activity activity, String prefName, String key, String defaultValue){
SharedPreferences prefs = activity.getSharedPreferences(prefName,0);
String pref = prefs.getString(key, defaultValue);
return pref;
}
public static void setSharedPreference(Activity activity, String prefName, String key, String value){
SharedPreferences prefs = activity.getSharedPreferences(prefName,0);
SharedPreferences.Editor editor = prefs.edit();
// edit and commit
editor.putString(key, value);
editor.commit();
}
}
您可以使用以下代码示例从活动中设置/获取首选项。
// You can set your shared preferences like following.
SharedPreferenceUtil.setSharedPreference(this.getActivity(),"pref","yourImageKey","yourImageUrl");
// and you can get your shared preferences like following.
String url = SharedPreferenceUtil.getSharedPreference(this.getActivity(),"pref","yourImageKey",null);
if(url != null){
}
修改强>
您可以通过以下
从SharedPreferences
到达Fragment
SharedPreferences preferences = this.getActivity().getSharedPreferences("pref",0);
希望这可能会有所帮助。
答案 3 :(得分:0)
尝试:
SharedPreferences pr=PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor r=pr.edit();
r.putString("name","yourlink");
r.commit();