SimpleCursorAdapterによって作成され、SQLiteデータベースからの値が事前入力されたEditTextアイテムの長いスクロールリストがあります。
私はこれを次のように作成します:
cursor = db.rawQuery("SELECT _id, criterion, localweight, globalweight FROM " + dbTableName + " ORDER BY criterion", null);
startManagingCursor(cursor);
mAdapter = new SimpleCursorAdapter(this, R.layout.weight_edit_items, cursor, new String[]{"criterion","localweight","globalweight"}, new int[]{R.id.criterion_edit, R.id.localweight_edit, R.id.globalweight_edit});
this.setListAdapter(mAdapter);
スクロールリストは、いくつかのエミュレータ画面の長さです。アイテムには[OK]と表示されます。アイテムをスクロールすると、それぞれがデータベースからの正しい値を持っていることがわかります。
任意のEditTextに編集変更を加えることができ、新しいテキストが受け入れられてボックスに表示されます。
しかし...次に、編集したアイテムを画面から削除するのに十分な距離までリストをスクロールすると、スクロールして戻ってもう一度見ると、変更を加える前の値に戻ります。つまり、編集内容が失われます。 。
これを整理するために、getTextを実行して、編集を行った後(およびスクロールの前)にEditTextの内容を確認しました。編集テキストが新しいテキストを表示している場合でも、getTextは元のテキストを返します。EditTextは私の編集を表面的にしか受け入れておらず、EditTextにバインドされていないようです。つまり、画面からスクロールするとドロップされます。
誰かがここで何が起こっているのか、そしてEditTextに編集を保持させるために何をする必要があるのか教えてもらえますか?