2017-06-05 8 views
0

私は自分のデータベースから値をレンダリングし、それらの値をそれぞれのEditTextフィールドに配置しているので、一般的にユーザーは保存データを変更できます。TextWatcherの現在の値と古い値を比較するには?

私のページにはSAVEボタンがありますが、デフォルトでは無効になっています。これは、EditTextフィールドが実際に変更された場合にのみ有効にする必要があります。変更されていない -

データベースの値と比較

、エディットテキストの値が変更された場合

  1. は - のEditTextの値は編集できますが、(ユーザーが同じ値をコピー&ペーストする)に変更されていない場合
  2. を修正しました。ここで

私のコードがある、

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アクティビティはAppCompactActivity {}を継承します – VITROXMAN

+0

ありがとう!それは期待どおりに機能しています。 – irigs

関連する問題