我正在开发一个有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字符串资源文件,但我不知道如何。
答案 0 :(得分:0)
如果将电影信息存储在SQLite数据库中会更好。
然后,您可以CursorAdapter
使用ListView
。
答案 1 :(得分:0)
无法更改资源文件。您将不得不使用其他方法来持久化数据。
为此使用SQLite或文件。
由于您尚未学习SQLite课程,因此可以尝试文件,如果不是文件,则可以尝试共享首选项。