我有一个EditText字段,假设用户已经在其中输入了文本。然后用户想再回来编辑文本:我想要这个EditText字段的功能是,如果你在它已经包含文本后选择它,它会在你输入新内容之前为你清除文本。 / p>
我尝试使用EditText字段的OnClick方法,但这需要我选择EditText字段,然后再次点击它,这对我以外的任何人都不是很明显。如何在用户选择文本时立即从EditText字段中清除文本?
答案 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,他或她可以自行决定如何处理文本,并且不会因为每次都清除而烦恼!