2017-06-05 69 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

相关问题