使用共享首选项存储图像URL

时间:2013-11-21 11:05:44

标签: android sharedpreferences imageurl

我试图找出如何通过点击项目按钮来存储图像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);
}

4 个答案:

答案 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();