2016-12-04 2 views
1

Butterknife(8.4.0)を使用して、いくつかのEditTextを持つフラグメントのビューをインスタンス化しています。Butterknifeの複数のメソッドを持つListenerに複数のビューをバインドする

これらのEditTextを使用して、文字列を特定のModel属性に設定しています。私は各Edittextのバインドメソッドのロードを作成したくないので@onTextChanged私はすべての編集テキストを渡します。私はAfterTextChanged()にしか関心がないので、それを渡しました。次に、editText IDを使用して、どのモデル属性を設定するかを指定します。

@BindView(R.id.edit_text_one) EditText textFieldOne; 
@BindView(R.id.edit_text_two) EditText textFieldTwo; 

@OnTextChanged(value = {R.id.edit_text_one, R.id.edit_text_two}, callback = OnTextChanged.Callback.AFTER_TEXT_CHANGED) 
    void setEditTextFields(EditText editText, Editable editable) { 
     switch (editText.getId()) { 
      case R.id.edit_text_one: 
       myModel.setStringOne(editable.toString()); 
       break; 
      case R.id.edit_text_two: 
       myModel.setStringTwo(editable.toString()); 
       break; 
     } 
    } 

私は

Error:(117, 10) error: @OnTextChanged methods can have at most 1 parameter(s). (com.skeeno.android.gamecabinet.Fragment.EditorFragment.setEditTextFields) 

コンパイルエラーを取得していますしかし、私はあなただけの最初の引数としてビューに渡すhereを読んだが、AfterTextChangedのみであるため、それが動作するようには思えません編集可能です。

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

ご協力いただきますようお願い申し上げます。ありがとう。

+1

OPでリンクされているチュートリアルをさらに調べた後。その方法は不可能です。 – skon

+0

ちょっとそう、このように使うことはできないのですか?私は同じ問題に直面していますが、私は 'Editable'を渡すことしかできないようです。どんな更新? – Mallika

答えて

1

での受け渡しビュー@onTextChangedは現在できません。私も試しました。 。

しかし、コードの下

//

ビュービュー= getActivity()getCurrentFocus()断片の内部には、現在のビューを取得するために使用することができます。

希望しました。

関連する問題