OnClick for EditText字段的更好方法是什么?

时间:2013-06-10 14:11:48

标签: android onclick android-edittext clear

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

我尝试使用EditText字段的OnClick方法,但这需要我选择EditText字段,然后再次点击它,这对我以外的任何人都不是很明显。如何在用户选择文本时立即从EditText字段中清除文本?

1 个答案:

答案 0 :(得分: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"/>

与描述here类似。通过这种方式,您的用户可以更好地了解UI,他或她可以自行决定如何处理文本,并且不会因为每次都清除而烦恼!