(Android)如何在某些情况下清除键盘内存(Acer键盘)

时间:2017-08-02 03:18:44

标签: android keyboard

首先,感谢大家的加入,对不起我的英语不好,所以我直接描述了这种情况,

我用SONY开发,当我点击EditText中的清除按钮时,它正常工作!即使我使用其他手机,如HTC,Oppo,mi ..一切都很好!

之后我尝试在Acer中安装它,清除按钮仍在工作,

BUT !!!!!

点击清除按钮后,再次使用键盘,我第一次输入的数据仍然在这里。

The data of my first input.

因此,当我再次输入

时,“MyFirstData”仍然会出现

Second-time input situation

我真的很困惑,因为我不知道如何解决它。

那我该怎么办,清除键盘数据?怎么样?

非常感谢!!!!




此处代码:
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) {
}

}

1 个答案:

答案 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" />

在清单中定义。

希望这有帮助。

相关问题