当edittext超过二十时,如何知道我的编辑文本是否被更改

时间:2013-12-07 10:32:06

标签: android android-edittext

如果only few edit texts使用textchangeListener或比较文本以查找文本是否已更改,如果我more than 20 edittext如何知道编辑文本是否已更改

我在这里发现几乎相同的问题1. How to check if an EditText was changed or not? 2. Knowing when Edit text is done being edited这很有帮助......有任何简单的方法可以做到这一点。

String temp = "aa";
    if(temp.equals(edittext.getText().toString()) {
        Log.e("Not Change",temp);
    } else {
            Log.e("Changed Value",edittext.getText().toString());
    }

提前致谢...

2 个答案:

答案 0 :(得分:2)

尝试以下内容:

编辑:

n1I1 = (EditText) findViewById(R.id.etN1I1);
n1I2 = (EditText) findViewById(R.id.etN1I2);
n1I3 = (EditText) findViewById(R.id.etN1I3);


 TextWatcher textWatcher = new TextWatcher() {

    @Override
    public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

    }

    @Override
    public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
 Toast.makeText(yourActivity.this,"changed",0).show();
    }

    @Override
    public void afterTextChanged(Editable editable) {

    }
};

ArrayList<EditText> firstList = new ArrayList<EditText>();
firstList.add(n1I1);
firstList.add(n1I2);
firstList.add(n1I3);

for(int i=0;i<firstList.size();i++)
{
 firstList.get(i).addTextChangedListener(textWatcher);
}

答案 1 :(得分:2)

请为所有Edittext制作一个通用的方法:

private void checkEditText(String temp, EditText edittext){
 if(temp.equals(edittext.getText().toString()) {
     Log.e("Not Change",temp);
 } else {
     Log.e("Changed Value",edittext.getText().toString());
 }

}

使用switch case为单个Edittext调用此方法。

如果你有任何问题,请告诉我。