2016-12-04 40 views
1

我使用Butterknife(8.4.0)在具有多個EditText的片段中實例化視圖。使用Butterknife中的多種方法將多個視圖綁定到Listener

我正在使用這些EditTexts將字符串設置爲特定的Model屬性。我不想爲每個編輯文本創建大量的綁定方法等等@onTextChanged我傳入所有編輯文本。我只對AfterTextChanged()感興趣,所以我也通過了。然後使用editText標識來指定應該設置哪個模型屬性。

@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

嘿,我們不能像這樣使用它?我面臨同樣的問題,但我似乎只能通過'可編輯的'。任何更新? – Mallika

回答

1

通過查看@onTextChanged目前不可能。我也嘗試過。

然而,下面的代碼可用於獲取當前的視圖,

//內部片段

視圖視圖= getActivity()getCurrentFocus();

希望這對我有所幫助。

相關問題