对EditText字段进行OnClick的更好方法?

问题描述 投票:4回答:1

我有一个EditText字段,假设用户已经在其中输入了文本。然后用户想回来再次编辑文本:我希望这个EditText字段的功能是,如果你在它已经有文本之后选择它,它就会在你输入新的内容之前为你清除文本。

我试过使用EditText字段的OnClick方法,但这需要我选择EditText字段,然后第二次点击它,这对除了我之外的任何人来说都不明显。我怎样才能在用户选择EditText字段后立即清除它的文本?

android onclick android-edittext
1个回答
16
投票

在一般情况下

你可以通过以下几个方面的结合来实现你想做的事情。onFocus 并清除文本字段,类似于您帖子下的两位评论者的建议。一个解决方案是这样的。

EditText myEditText = (EditText) findViewById(R.id.myEditText);
myEditText.setOnFocusChangeListener(new OnFocusChangeListener() {
        
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if (hasFocus) {
        // Always use a TextKeyListener when clearing a TextView to prevent android
        // warnings in the log
        TextKeyListener.clear((myEditText).getText());
                
        }
    }
});

始终 使用TextKeyListener来 "清理 "EditText,这样可以避免日志中的大量安卓警告。

但是...

我更建议你在你的xml中简单地设置以下内容。

<EditText android:selectAllOnFocus="true"/>

如上所述 此处. 这样一来,你的用户就有了更好的UI感觉,他或她可以自己决定如何处理这些文字,而不会因为每次都被清空而烦躁。

© www.soinside.com 2019 - 2024. All rights reserved.