android EditText 删除叉
时间: 2024-06-09 12:08:59 浏览: 132
你可以在 EditText 的布局文件中添加以下属性来显示删除叉:
```xml
<EditText
...
android:drawableRight="@drawable/ic_clear"
android:drawableEnd="@drawable/ic_clear"
android:drawablePadding="8dp" />
```
其中 `@drawable/ic_clear` 是一个删除图标的资源文件,在这里你可以使用系统自带的 `android.R.drawable.ic_menu_close_clear_cancel` 或者自己制作一个图标。`android:drawablePadding` 属性用于设置删除图标与 EditText 文字间的间距,可以根据需要进行调整。
然后在 Activity 或者 Fragment 中对 EditText 添加 TextWatcher,监听文本变化事件,当用户输入内容后,删除图标就会自动显示:
```java
EditText editText = findViewById(R.id.editText);
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (s.length() > 0) {
editText.setCompoundDrawables(null, null, getResources().getDrawable(R.drawable.ic_clear), null);
} else {
editText.setCompoundDrawables(null, null, null, null);
}
}
@Override
public void afterTextChanged(Editable s) {}
});
```
在 `onTextChanged` 方法中,通过判断文本长度来决定是否显示删除图标,如果文本长度大于 0,则显示删除图标,否则隐藏删除图标。调用 `editText.setCompoundDrawables` 方法来设置 EditText 的左、上、右、下四个方向的 drawable,这里只需要设置右边的 drawable 即可。
阅读全文