2017-11-11 19 views
0

IはRecyclerViewためのアダプタクラスで)(onBindViewHolderで次た:RecyclerViewでsetOnFocusChangeListenerを使用するにはどうすればいいですか?

holder.answerEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() { 
       @Override 
       public void onFocusChange(View v, boolean hasFocus) { 
        if(!hasFocus){ 

         String answer = holder.answerEditText.getText().toString(); 

         mDatasetAnswers.add(answer); 

        } 
       } 
      }); 

上のみrecyclerviewの最初EDITTEXTからの入力を返します。私は何が間違っていますか? 私は、recyclerview内のすべてのEditTextsからテキストを返すことを望みます。あなたがコンポーネントがフォーカスを取り込むことができていることを確認し、これらの線で

holder.answerEditText.setFocusable(true); 
holder.answerEditText.setFocusableInTouchMode(true); 

+0

他の条件もrecyclerviewに追加してください。その作業を確認してください –

+0

既にしました。まだ他のすべてのEditTextsから最初のものと離れた値を取得することができません –

答えて

0

これは、onbindviewが呼び出されて、すべての行が再びリフレックスされるため、recyclerviewの最初のボックスにフォーカスが変更されるため、recyclerviewの編集ボックスをクリックするとポップアップするために発生します。

したがって、フォーカスがオンになっているかどうかを監視し、キーボードがポップアップする前にまず内容を確認してください。お役に立てれば。

+0

ありがとう!それを修正します。 –

0

は、これらの行を追加してください。

+0

最初のものとは別の他のEditTextsから値を取得できません。 –

+0

しかし、それは残りのものの焦点をキャプチャし、値を取ったりフォーカスを取得したりしません。 –

関連する問題