在EditText的监听器中,通过调用Editable.toString()
方法获取Editable实例的文本内容,然后保存到一个变量中。在下一次回调时,将新的Editable实例与之前保存的文本内容进行比较,如果不相同则表示文本已经发生了改变。
以下是一个示例代码:
public class MainActivity extends AppCompatActivity {
private EditText editText;
private String previousText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = findViewById(R.id.editText);
editText.addTextChangedListener(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) {
}
@Override
public void afterTextChanged(Editable editable) {
String newText = editable.toString();
if (!newText.equals(previousText)) {
// 文本已经发生了改变
// 进行相应的处理
previousText = newText;
}
}
});
}
}
在上面的代码中,我们在MainActivity中定义了一个变量previousText
用于保存上一次的文本内容。在afterTextChanged
回调中,我们获取Editable实例的文本内容并与previousText
进行比较,如果不相同则表示文本已经发生了改变,然后我们可以进行相应的处理。最后,将newText
赋值给previousText
,以便下一次回调时进行比较。