0

我正在做一个有 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 字符串资源文件,但我不知道如何。

4

2 回答 2

0

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

然后,您可以使用 a CursorAdapterwith you ListView

于 2012-08-16T11:45:36.533 回答
0

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

为此使用 SQLite 或文件。

由于您还没有上 SQLite 课程,您可以尝试文件,如果不是文件,那么您可以尝试共享首选项。

于 2012-08-16T12:42:14.230 回答