1

我试图弄清楚如何通过项目按钮的 onClick 存储图像 URL,以便其他类可以访问它们。

我环顾四周,发现最好使用共享偏好来实现这一点。

我以前从未使用过共享首选项,所以我对如何实现这一点有点困惑,因为我想从我称之为“mImageUrl”的字符串中获取 URL

我知道我的字符串“mImageUrl”会给我当前正在查看的图像的 URL,所以我喜欢以某种方式将字符串/URL 从我的字符串存储到共享首选项,以便可以通过另一个类使用特定的 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

4 回答 4

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"));
于 2013-11-21T11:10:40.243 回答
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);
于 2013-11-21T11:41:40.757 回答
1

您可以简单地实现一个类来处理共享首选项的获取/设置操作。

我将提供一个类,以便您可以轻松地集成到您的项目中。

这是我们的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);

希望这可能会有所帮助。

于 2013-11-21T11:19:19.560 回答
0

尝试:

SharedPreferences pr=PreferenceManager.getDefaultSharedPreferences(context);

SharedPreferences.Editor r=pr.edit();

r.putString("name","yourlink");

r.commit();
于 2013-11-21T11:11:56.997 回答