【问题标题】:Android: Update Array of Strings from file onlineAndroid:从在线文件更新字符串数组
【发布时间】:2013-08-02 01:52:37
【问题描述】:

我正在开发一个使用 nostra13 库的 android 应用程序。首先,nostra13 使用一个包含字符串数组的类文件,这些字符串是要下载的图像的 url。

例如

public static final String[] IMAGES = new String[]{
    "http://www.ltp.com.ph/SiteImages/Technilink/TL_1Q13_CE.jpg",
    "http://www.ltp.com.ph/SiteImages/Technilink/TL_4Q12_CE.jpg",
    "http://www.ltp.com.ph/SiteImages/Technilink/TL_2Q12_CE.jpg",
    "http://www.ltp.com.ph/SiteImages/Technilink/TL_1Q12_CE.jpg",
    "http://www.ltp.com.ph/SiteImages/Technilink/TL_4Q11_CE.jpg",
    "http://www.ltp.com.ph/SiteImages/Technilink/TL_2Q11_CE.jpg",
    "http://www.ltp.com.ph/SiteImages/Technilink/TL_1Q11_CE.jpg",
    "http://www.ltp.com.ph/SiteImages/Technilink/TL_4Q10_CE.jpg"
};

有没有办法在线更新这个字符串数组?就像我想把一些文件放到网上然后应用程序会下载它并更新字符串 [] 图像?谢谢!

【问题讨论】:

    标签: android arrays updating


    【解决方案1】:

    您可以使用在线获得的新数据更改存储在每个数组位置中的值,但您将无法更改数组的长度,因为它被声明为final

    更好的方法是将 IMAGES 数组视为初始化工作数组的数据源,您可以将其存储在持久存储中(例如,SharedPreferences 或 SQLite 数据库 - 请参阅指南主题 @987654321 @)。当您从 Web 检索新数据时,您可以轻松替换或更新存储的数据。您只会使用IMAGES 数组来初始化您的工作数组并在此之后忽略它(除非您添加了“重置”函数以返回原始数据)。

    【讨论】:

    • 谢谢!我可以做一些类似 public static final String[] IMAGES = new String[] .... 然后将 db 值传递给 IMAGES 的事情吗?
    • @KenndeLeon - 当您声明final 数组时,您分配给它的数组对象不能更改;您只能更改存储在数组中的元素。如果您想保护数组免受其他代码的无意更改,请将其设为小型实用程序类(可能最好是单例)的(非final)私有成员,该实用程序提供访问器和设置器来操作受控方式。实用程序类也可以负责与数据库交互,如果这符合设计的其余部分,或者您可以使用批量更改设置方法。
    猜你喜欢
    • 2014-10-11
    • 2012-03-30
    • 1970-01-01
    • 2013-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多