私は少し知っていますTextWatcherが、それはあなたが入力したすべての文字に発火します. ユーザーが編集を終了するたびに起動するリスナーが必要です。出来ますか?また、TextWatcherのインスタンスを取得しますが、のインスタンスEditableが必要ですEditText。どうすればそれを取得できますか?
編集: 2 番目の質問はより重要です。それに答えてください。
私は少し知っていますTextWatcherが、それはあなたが入力したすべての文字に発火します. ユーザーが編集を終了するたびに起動するリスナーが必要です。出来ますか?また、TextWatcherのインスタンスを取得しますが、のインスタンスEditableが必要ですEditText。どうすればそれを取得できますか?
編集: 2 番目の質問はより重要です。それに答えてください。
まず、ユーザーがフォーカスを失った場合、またはユーザーが完了ボタンを押した場合に、ユーザーがテキストの編集を終了したかどうかを確認できEditTextます (これは、実装と、何が最適かによって異なります)。次に、 をインスタンス オブジェクトとして宣言した場合EditTextにのみ、 内でインスタンスを取得できません。安全ではないため、内でを編集しないでください。TextWatcherEditTextEditTextTextWatcher
編集:
EditTextインスタンスをTextWatcher実装に取り込めるようにするには、次のようなことを試してください。
public class YourClass extends Activity {
    private EditText yourEditText;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        yourEditText = (EditText) findViewById(R.id.yourEditTextId);
        yourEditText.addTextChangedListener(new TextWatcher() {
            public void afterTextChanged(Editable s) {
                // you can call or do what you want with your EditText here
                // yourEditText... 
            }
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
            public void onTextChanged(CharSequence s, int start, int before, int count) {}
        });
    }
}
上記のサンプルにはいくつかのエラーがある可能性があることに注意してください。ただし、例を示したかっただけです。
すべての EditText フィールドにリスナーを実装するには、醜く冗長なコードが必要になるのが面倒だったので、以下のクラスを作成しました。これにつまずいた人には役立つかもしれません。
public abstract class TextChangedListener<T> implements TextWatcher {
    private T target;
    public TextChangedListener(T target) {
        this.target = target;
    }
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {}
    @Override
    public void afterTextChanged(Editable s) {
        this.onTextChanged(target, s);
    }
    public abstract void onTextChanged(T target, Editable s);
}
リスナーの実装が少しすっきりしました。
editText.addTextChangedListener(new TextChangedListener<EditText>(editText) {
            @Override
            public void onTextChanged(EditText target, Editable s) {
                //Do stuff
            }
        });
どのくらいの頻度で起動するかについては//Do stuff、特定のイベントの後に目的のコードを実行するチェックを実装できます
ButterKnifeを使用しているすべてのユーザー。次のように使用できます。
@OnTextChanged(R.id.zip_code)
void onZipCodeTextChanged(CharSequence zipCode, int start, int count, int after) {
}
    TextWatcher私にとってはうまくEditTextいきませんでした.
これが私の解決策です:
public class ConsultantTSView extends Activity {
    .....
    //Submit is called when I push submit button.
    //I wanted to retrieve all EditText(tsHours) values in my HoursList
    public void submit(View view){
        ListView TSDateListView = (ListView) findViewById(R.id.hoursList);
        String value = ((EditText) TSDateListView.getChildAt(0).findViewById(R.id.tsHours)).getText().toString();
    }
}
したがって、getChildAt(xx)メソッドを使用すると、 内の任意のアイテムを取得し、ListViewを使用して個々のアイテムを取得できますfindViewById。そして、最新の値を提供します。
私が考える限り、それを行うには2つの方法しかありません。ユーザーが単語を書き終えたことをどのように知ることができますか? フォーカスが失われたか、「OK」ボタンをクリックしたかのいずれかです。ユーザーが最後の文字を押したことを知る方法はありません...
そのため、ボタンとクリック リスナーを呼び出すonFocusChange(View v, boolean hasFocus)か、ボタンに追加します。