用HBuidex实现需求说明 当文本框获得焦点时,文本框内默认文字消失,失去焦点时,文本框内提示文字再次出现
时间: 2024-10-19 07:02:35 浏览: 36
在HBuilderX中实现这样的需求,可以按照以下步骤编写代码:
1. 首先,你需要在XML布局文件中设置一个TextView作为输入框,并添加必要的属性,例如id、android:focusable和android:focusableInTouchMode来使其能获取焦点。示例代码如下:
```xml
<EditText
android:id="@+id/input_box"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text=""
android:focusable="true"
android:focusableInTouchMode="true" />
```
2. 接下来,在对应的Activity或Fragment类中找到这个输入框并绑定其`OnFocusChangeListener`和`OnBlurListener`,这样可以在焦点改变时触发相应的回调函数。在Java或Kotlin中添加如下代码:
```java (Java)
import com.ccb.hbuliderx.widget.HBView;
// ...
private EditText inputBox;
...
inputBox = findViewById(R.id.input_box);
inputBox.setOnFocusChangeListener(new View.OnFocusChangeAdapter() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
// 文本框获得焦点,清空默认文字
inputBox.setText("");
} else {
// 失去焦点,显示提示文字
inputBox.setText("请输入...");
}
}
});
inputBox.setOnBlurListener(new View.OnBlurListener() {
@Override
public void onBlur(View view) {
// 失去焦点时的处理同上
inputBox.setText("请输入...");
}
});
```
或者在Kotlin中:
```kotlin
val inputBox = findViewById<EditText>(R.id.input_box)
inputBox.setOnFocusChangeListener { _, hasFocus ->
if (hasFocus) {
inputBox.text = ""
} else {
inputBox.text = "请输入..."
}
}
inputBox.setOnBlurListener { _, _ ->
inputBox.text = "请输入..."
}
```
阅读全文