第一个焦点上的EditText明文 - Android

Mat*_*osh 8 java android android-edittext

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

我该怎么做?

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

Soh*_*ham 10

马坦,我不确定这是不是你在看,但我想你想为你的编辑文字显示一个'提示'

<EditText
.
.
 android:hint="Please enter your name here">
Run Code Online (Sandbox Code Playgroud)

有关示例,请查看http://www.giantflyingsaucer.com/blog/wp-content/uploads/2010/08/android-edittext-example-3a.jpg


Laz*_*usX 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;
    }
});
Run Code Online (Sandbox Code Playgroud)