共享偏好使用的奇怪行为

时间:2014-10-05 11:57:06

标签: android sharedpreferences

我试图通过他们的url从服务器恢复一些图像,并使用适配器和AsyncTask类在列表视图中加载所有图像。 完整的URL存储在sharedpreference var中。因此,当我尝试恢复每个图像时,当我使用句子来读取共享首选项var中的url时,使用类似这样的连接句子:

    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(mContext);
    String cadenaURL="";
    String sp = sharedPreferences.getString("url"+position, "");
    if (sp != "")
        cadenaURL = "http://www.domain.com/imagenes/" + sp;

然后cadenaURL的值每次循环listview是这样的:

http://www.domain.com/imagenes/http://www.domain.com/imagenes/87f67d7a-ac18-48bf-bb37-5c21eaab440e.jpg

以及其他网址等等。因为当我尝试通过imageview控件显示图像时,这个控件返回错误,因为它们无法解决由于错误的sintax而导致的URL。

你能帮我解决这个问题吗?

先谢谢你。

2 个答案:

答案 0 :(得分:0)

您在共享偏好设置中存储的值似乎已包含网址的http://www.domain.com/imagenes/部分。尝试将url的后缀仅保存到共享首选项(而不是字符串sp,我认为这是正在发生的事情),或者避免将http://www.domain.com/imagenes/添加到值的开头你从共享的偏好中提取。

答案 1 :(得分:0)

事实是,sharedpreference变量存储了完整的url,所以我将url字符串与一个完整的url字符串重新连接,因此有一个完整的重复url字符串。