8

我有几个带有文本的 EditText 对象。我希望 EditText 第一次获得焦点以删除其中的文本,但仅限于第一次。

我该怎么做?

这是一个示例:我有一个名为 SomeThing 的 EditText,其中包含文本“someText”。当用户第一次触摸 SomeThing 时,我希望删除“someText”。所以假设文本被删除,现在用户输入了他自己的文本,这次是“someOtherText”,而 EditText 失去了对其他一些 EditText 的关注。这次当用户点击 SomeThing 时,“someOtherText”不会被删除,因为这是它第二次获得焦点。

4

2 回答 2

12

Matan,我不确定这是否是您正在查看的内容,但我认为您想为您的编辑文本显示“提示”

例子

<EditText
.
.
 android:hint="Please enter your name here">

例如,检查这个http://www.giantflyingsaucer.com/blog/wp-content/uploads/2010/08/android-edittext-example-3a.jpg

于 2012-10-23T02:22:12.703 回答
5

如果您正在寻找为 . 添加占位符的方法EditText,只需添加android:hint = 'some text'到相应的 XML 文件或setHint('some text')调用EditText.

否则,您可以使用OnFocusChangeListener()来响应获取焦点事件。要检查是否是第一次EditText获得焦点,请使用另一个Boolean变量(例如,isFirstTimeGetFocused)并将其初始化为trueinonCreate()方法。EditText获得焦点后,设置isFirstTimeGetFocusedfalse;

editText.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
    if(hasFocus && isFirstTimeGetFocused){
        editText.setText("");
        isFirstTimeGetFocused = false;
    }
});
于 2012-10-23T02:44:44.397 回答