Android:在Array ListView中添加新条目

时间:2012-08-16 11:37:59

标签: android arrays listview

我正在开发一个有2个屏幕的项目。第一个屏幕包含一个ListView,其中包含所有有史以来最畅销的电影。每行包含:

a。)电影片名 b。)收益 c。)发布年份

所有都按XML排列,每个影片都在strings.xml资源的字符串数组中声明,由编码本身内的for循环访问。单击“菜单”按钮,可以选择添加其他条目。单击此按钮会将用户重定向到另一个包含3个空编辑文本字段的屏幕。这些分别对应于电影标题,收入和年份发布,用户可以在其中输入电影。

这是字符串.xml(片段太久了):

 <string-array name="title_array">
        <item>Avatar</item>
        <item>Titanic</item>
        <item>The Lord of the Rings: The Return of the King</item>
        <item>Pirates of the Caribbean: Dead Mans Chest</item>
        <item>Toy Story 3</item>
        <item>Pirates of the Caribbean: On Stranger Tides</item>
    </string-array>

假设我也有相应的粗数组和年数组。

这是适当的for循环(通过自定义适配器):

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        String[] titleList = getResources().getStringArray(R.array.title_array);
        String[] grossList = getResources().getStringArray(R.array.gross_array);
        String[] dateList = getResources().getStringArray(R.array.date_array);

        ArrayList<Lab6_082588FetchDetails> results = new   ArrayList<Lab6_082588FetchDetails>();

    for (int i = 0; i < titleList.length; i++) {
        Lab6_082588FetchDetails sr = new Lab6_082588FetchDetails();
        sr.setTitle(titleList[i]);
        sr.setGross(grossList[i]);
        sr.setDate(dateList[i]);
        results.add(sr);
    }

我的问题是,当然,我可以添加另一个条目并使用set notifyDataSetChanged();但如果用户退出并重新打开应用程序,则不会“永久”保存新条目。我的假设是,人们可能会通过代码更改.xml字符串资源文件,但我不知道如何。

2 个答案:

答案 0 :(得分:0)

如果将电影信息存储在SQLite数据库中会更好。

然后,您可以CursorAdapter使用ListView

答案 1 :(得分:0)

无法更改资源文件。您将不得不使用其他方法来持久化数据。

为此使用SQLite或文件。

由于您尚未学习SQLite课程,因此可以尝试文件,如果不是文件,则可以尝试共享首选项。