首先,感谢大家的加入,对不起我的英语不好,所以我直接描述了这种情况,
我用SONY开发,当我点击EditText中的清除按钮时,它正常工作!即使我使用其他手机,如HTC,Oppo,mi ..一切都很好!
之后我尝试在Acer中安装它,清除按钮仍在工作,
BUT !!!!!
点击清除按钮后,再次使用键盘,我第一次输入的数据仍然在这里。
因此,当我再次输入
时,“MyFirstData”仍然会出现我真的很困惑,因为我不知道如何解决它。
那我该怎么办,清除键盘数据?怎么样?
非常感谢!!!!
此处代码:
binding.searchView是我的editext
binding.searchView.addTextChangedListener(new TextWatcherAdapter());
binding.searchView.setOnEditorActionListener(getSearchEditListener());
channelDialogHelper = new ChannelDialogHelper(this);
}
private TextView.OnEditorActionListener getSearchEditListener() {
return new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
messageResultAdapter.clearAdapter();
shareFileResultAdapter.clearAdapter();
keyword = MessageFactory.getInstance().parseSourceData(v.getText().toString());
if (StringUtil.isEmpty(keyword)) {
return false;
}
hasMessageResult = false;
hasFileResult = false;
if (binding.searchMessageButton.isSelected()) {
searchMessageListener(binding.searchMessageButton);
} else if (binding.searchFileButton.isSelected()) {
searchFileListener(binding.searchFileButton);
}
return true;
}
return false;
}
};
}
TextWatcherAdapter:
public class TextWatcherAdapter implements TextWatcher {
public TextWatcherAdapter() {
}
public void beforeTextChanged(CharSequence var1, int var2, int var3, int var4) {
}
public void onTextChanged(CharSequence var1, int var2, int var3, int var4) {
}
public void afterTextChanged(Editable var1) {
}
}
答案 0 :(得分:0)
一种可能的解决方案是使用ContentResolver.delete()删除确切的单词。例如:
private int deleteWord(String word) {
if (TextUtils.isEmpty(word)) {
return -1;
}
return getContentResolver().delete(UserDictionary.Words.CONTENT_URI,
UserDictionary.Words.WORD + "=?", new String[] { word });
}
当然,需要
<uses-permission android:name="android.permission.WRITE_USER_DICTIONARY" />
在清单中定义。
希望这有帮助。