2017-06-05 114 views
0

我從我的數據庫呈現值並將這些值放在各自的EditText字段中,因此通常允許用戶修改其保存數據。如何在TextWatcher中將當前值與舊值進行比較?

我的頁面上有一個SAVE按鈕,默認情況下禁用。只有在EditText字段真的被修改時才應該啓用它。

當與數據庫值進行比較,

  1. 如果編輯文本值被改變 - 修改
  2. 如果的EditText值進行編輯,但沒有改變(用戶可以複製粘貼相同的值) - 不修改。

這裏是我的代碼,

EditText text1 = (EditText) findViewById(R.id.text1); 
EditText text2 = (EditText) findViewById(R.id.text2); 
EditText text3 = (EditText) findViewById(R.id.text3); 
EditText text4 = (EditText) findViewById(R.id.text4); 
EditText text5 = (EditText) findViewById(R.id.text5); 

ArrayList<EditText> editTextList = new ArrayList(); 
editTextList.add(text1); 
editTextList.add(text2); 
editTextList.add(text3); 
editTextList.add(text4); 
editTextList.add(text5); 

for(EditText e : editTextList) 
    e.addTextChangedListener(textWatcher); 

private TextWatcher textWatcher = new TextWatcher() { 

public void afterTextChanged(Editable s){} 
public void beforeTextChanged(CharSequence s, int start, int count, int 
after) {} 
public void onTextChanged(CharSequence s, int start, int before,int 
count) {} 
}; 

有什麼辦法到數據庫值與當前的EditText給定值進行比較?

注:

由於TextWatcher功能適用於所有的EditText,我想要做的普通的比較。

回答

0

你必須用一個全局變量來控制它。或被動對象或使用數據綁定。

+0

感謝您的評論。你介意舉個例子嗎? – irigs

+0

全局變量示例:public Activity extends AppCompactActivity {} – VITROXMAN

+0

謝謝!它按預期工作。 – irigs

相關問題