我构建了一个 Android 应用程序。我有一个 EditText。我想在用户更改文本后自动保存更改(或其他任何内容)。 现在我用
editText.addTextChangedListener(textWatcher);
和
TextWatcher textWatcher = new TextWatcher() {
public void afterTextChanged(Editable s) {
...
}
但它会在每次小的更改(添加\删除一个字母)后保存更改,我希望它只会在用户完成后保存(关闭键盘,单击不同的编辑文本等)。 我该怎么做?
最佳答案
实现 setOnFocusChangeListener
的 onFocusChange
并且 hasFocus 有一个 bool 参数。如果这是 false,您就失去了对另一个控件的关注,您应该保存 editext 的数据。例如
EditText editText= (EditText) findViewById(R.id.editText);
editText.setOnFocusChangeListener(new OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
if(!hasFocus) {
//SAVE THE DATA
}
}
});
为所有 EditText 实现 setOnFocusChangeListener
,您也应该处理 Back Press
事件。如果用户更改了 edittext 的数据并且没有转到另一个 EditText 并按下返回那么编辑的值将不会保存。所以也应该使用 onKeyDown
或 onBackPressed
关于Android - 在 EditText 中更改文本后*做一些事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17207448/