2016-09-28 67 views
2

我有兩個TextInputEditText領域:Android的2個TextInputEditText和雙向addTextChangedListener

TextInputEditText fromData = (TextInputEditText) view.findViewById(R.id.fromData); 
TextInputEditText toData = (TextInputEditText) view.findViewById(R.id.toData); 

兩個領域具有addTextChangedListener(),應該改變對方的文本。但是這會導致錯誤(遞歸)。因爲當我在fromData中寫入一些文本時,toData文本也會發生變化,並且如果toData文本從數據更改也應該更改。

如何讓textchangelistener以兩種方式工作?

回答

0

覆蓋偵聽器,並且如果它正在更改爲的文本與它已經相同,則不要更改它。

因此,在fromData中更改了文本,並且它調用了on文本更改了的偵聽器,更改後的文本檢查被更改的文本是否等於文本視圖中已存在的文本,如果它沒有做任何事情。

onTextChanged(String newText) { 
    if (!newText.equals(fromData.getText())) { 
      fromData.setText(newText); 
    } 
} 
0

您可以定義一個全局變量像focusedTextView然後加上觸摸聽衆都textviews。現在,當一個特定的觀點被觸動。

您只需將該變量的值設置爲該視圖。

最後,在addTextChangeListener 只是檢查這是什麼全局變量的電流值,只是改變其重點不在意其他的TextView的文本。

希望這會給你你想要的雙向結果。

讓我知道它是否改變了你的任何東西。