3

多くの文字列フィールドを含むデータベース オブジェクトがあります。現在、これらの文字列フィールドは、多くの編集テキストを含むアクティビティを通じてユーザーによって管理されています。しかし、EditTexts からデータベースにすべての情報を保存するのに問題があります。アクティビティが onPause を呼び出すときにこれを実行しようとしましたが、希望どおりに動作しません (EditTexts で ListView を使用しているため、ビューが存在するかどうかはわかりません)。私はテキスト ウォッチャーを見てきましたが、動的に作成される EditText ごとに 1 つ追加するのは非常に面倒です。

EditText を拡張し、TextWatcher を使用するために何かを実装することを検討しましたが、これについて最善の方法がわかりません。

これを達成する方法について誰か提案がありますか? 助けてくれてありがとう。

4

2 に答える 2

1

これらの EditText オブジェクトのそれぞれへの参照を ArrayList に保持し、配列リスト アダプターを使用してリストビューにデータを提供する必要があります。

EditText のいずれかが変更された場合、アダプターで notifyDatasetChanged を呼び出すことができます。onPause メソッドでは、ArrayList をループして、それぞれをデータベースに保存できます。

于 2013-09-04T02:59:29.377 に答える
0

いくつかのアイデアが思い浮かびます:

1.

リスト ビューの上部または下部、またはアクション バーに保存ボタンを実装します。

onclicklistener の保存ボタンは、リスト ビュー内の各テキストを取得し、データベース内の関連フィールドを更新します。

saveButton 作業を UI スレッドに配置して、完了するまでブロックし、アクティビティが破棄されないようにします。進行状況ダイアログを作成して、ユーザーに更新中であることを知らせることもできます。

2.

リストビュー用のカスタムアダプターを実装し、アダプターの getView() メソッドで(とにかくこれをオーバーライドする必要があります)テキストウォッチャーを動的に追加します...そのようにして、それらを個別に追加するのはそれほど難しいことではありません

于 2013-09-04T00:49:22.487 に答える