現在、私は Android アプリに取り組んでいますが、解決できない問題に遭遇しました。私は2つの活動をしています。そのうちの 1 つで、ArrayList を public static として定義します。このリストは、リストビューのコンテンツとして使用されます。その他のアクティビティでは、その特定のリストのアイテムを編集するか、削除したいと考えています。
問題: 私のサムスン ギャラクシー S II (Android バージョン 4.0.4) では正常に動作しますが、SGSIII (4.1 だと思います) などの他のデバイスでは、そのリストの同期に問題があります。基本的に、その 2 番目のアクティビティが終了して最初のアクティビティに戻ると、すべての変更が取り消されたように見えます...
これは、最初のアクティビティのリストビューの更新関数のコードです。このメソッドでは変更は認識されません。
private void updateList() {
String[] values = new String[hatCommandList.size()];
for(int i = 0; i < values.length;i++) {
values[i] = ((Command)hatCommandList.get(i)).getRealCommand();
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, values);
ListViewSentCommands.setAdapter(adapter);
}
ご覧のとおり、特別なことは何もありません。ここでは、「hatCommandList」を編集する 2 番目のアクティビティのコードを示します。
public void onClick(View v) {
SettingsActivity.hatCommandList.remove(position);
finish();
}
リスト内の位置を指すために使用される「位置」には、明らかに正しい値が含まれています。すでに確認しました。
とにかく、一部のデバイスで機能する理由と機能しない理由を教えていただければ幸いです...
事前にご挨拶と感謝、ティモ