4

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

我尝试使用 EditText 字段的 OnClick 方法,但这要求我选择 EditText 字段,然后再次单击它,这对除我之外的任何人都不明显。用户选择后,如何从 EditText 字段中清除文本?

4

1 回答 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,这样可以避免日志中出现很多 android 警告。

但...

我宁愿建议您在 xml 中简单地设置以下内容:

<EditText android:selectAllOnFocus="true"/>

就像这里描述的一样。通过这种方式,您的用户对它有更好的 UI 感觉,他或她可以自己决定如何处理文本,并且不会因为每次都清除而烦恼!

于 2013-06-10T14:25:15.867 回答