3

私のアプリケーションでは、 内のレコードを追加/削除/編集するアクティビティがありSortedMapます。アクティビティは の拡張として実装されListActivityます。ArrayAdapterコレクションアイテムのカスタムを実装しました。

すべてのListView項目 (基になるレコードに対応する) は、TextViews、EditTexts、およびButtonレコード自体を削除する a で構成されます。レイアウトはおおよそ次のとおりです。

ListView
----------------------------------------------------
[TextView] [EditText] [TextView] [EditText] [Button]
----------------------------------------------------
[TextView] [EditText] [TextView] [EditText] [Button]

私の目標は、ユーザーが編集を終了するとすぐに、ユーザーが s に入力した入力を処理することですEditText。つまり、ユーザーが から離れたとき、EditTextまたはユーザーが画面上のキーボードを閉じるために押したときです。

onFocusChangedで表示されるテキストを処理するために、 を処理してこれを実装しようとしましたEditText。ただし、このメソッドはうまく機能しません。onFocusChangedメソッドは、選択されていない未編集EditTextの であっても、非常に頻繁かつランダムに呼び出されます。これはおそらく、このStackOverflow questionの Android ブログの記事によるものです。

これを行うより良い方法はありますか?

4

1 に答える 1

2

TextViewEditText拡張され、public void addTextChangedListener (TextWatcher watcher)あなたに役立つかもしれない方法が含まれています。

以前は使用したことがありませんが、ユーザーが編集するたびに呼び出され、TextView変更されるたびに処理できるようです。これは、ユーザーが文字を削除または追加するたびに呼び出されると、多くのオーバーヘッドを引き起こす可能性がありますが、最も簡単な解決策である可能性があります。

于 2011-01-14T23:30:04.757 に答える