私は2つの画面を持つプロジェクトに取り組んでいます。最初の画面には、過去最高の売上を記録したすべての映画を含むListViewが含まれています。各行には次のものが含まれます。
a。)映画のタイトルb。)収益c。)リリースされた年
すべてがXMLで配置され、各ムービーは、適切なコーディング内のforループによってアクセスされるstrings.xmlリソースのstring-arrayで宣言されます。メニューボタンをクリックすると、別のエントリを追加するかどうかを選択できます。これをクリックすると、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>
対応するgross-arrayとyear-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文字列リソースファイルをコードで変更できると思いますが、その方法がわかりません。