在EditText上监听Done按钮并在用户没有按Done按钮时清除EditText?

时间:2017-11-08 04:05:12

标签: android android-edittext focus

我有一个EditText,如果用户按下键盘上的“完成”按钮我想听,当用户没有按下软键盘上的“完成”按钮时我也想清除EditText,我该怎么做?

2 个答案:

答案 0 :(得分:4)

要检查用户按下软键盘的“完成”按钮,请使用以下代码:

edittext.setOnEditorActionListener(new TextView.OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) {
        if(i== EditorInfo.IME_ACTION_DONE){
            Toast.makeText(getApplicationContext(),"Done pressed",Toast.LENGTH_SHORT).show();
        }
        return false;
    }
});

要在焦点更改后清除edittext的文本,请使用以下代码:

edittext.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View view, boolean hasFocus) {
        if(!hasFocus){
            edittext.setText("");
        }
    }
});

答案 1 :(得分:0)

在 Kotlin 中像这样:

android:imeOptions="actionDone"

edittext.onFocusChangeListener = OnFocusChangeListener { view, hasFocus ->
                if (hasFocus) {
                    //Logic Here
                }
            }