Android EditText显示输入的文字居中,但输入时从头开始
时间: 2024-02-24 07:55:50 浏览: 21
要实现这个功能,你可以在代码中设置EditText的Gravity属性为center,然后在代码中设置EditText的光标位置为最后一个字符的位置。具体代码如下:
```
EditText editText = findViewById(R.id.editText);
editText.setGravity(Gravity.CENTER); // 设置文字居中
editText.setSelection(editText.getText().length()); // 设置光标位置为最后一个字符的位置
```
这样就可以实现EditText显示输入的文字居中,但输入时从头开始的效果了。
相关问题
android EditText 输入文字后显示叉,空则不显示
你可以通过添加一个 TextWatcher 来监听 EditText 中的文本变化,然后根据文本的变化来显示或隐藏清除按钮。
以下是一个示例代码:
```java
EditText editText = findViewById(R.id.edit_text);
final Drawable clearButton = ContextCompat.getDrawable(this, R.drawable.ic_clear); // 获取清除按钮的图标
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.setCompoundDrawablesWithIntrinsicBounds(null, null, clearButton, null); // 显示清除按钮
} else {
editText.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null); // 隐藏清除按钮
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
// 点击清除按钮清空文本
editText.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP && editText.getCompoundDrawables()[2] != null) {
if (event.getX() >= (editText.getRight() - editText.getCompoundDrawables()[2].getBounds().width())) {
editText.setText("");
return true;
}
}
return false;
}
});
```
在这个示例中,我们添加了一个 `TextWatcher` 来监听 EditText 中的文本变化。在 `onTextChanged()` 方法中,我们检查文本的长度,如果长度大于 0,则显示清除按钮,否则隐藏清除按钮。我们还使用 `setOnTouchListener()` 方法来监听清除按钮的点击事件,当点击清除按钮时,我们将 EditText 的文本清空。注意,在这个示例中,我们使用 `setCompoundDrawablesWithIntrinsicBounds()` 方法来设置 EditText 中的清除按钮图标,因为我们想要将其放在 EditText 的右侧。你需要根据你自己的需求来设置这个图标的位置和大小。
Android EditText光标从头输入
要让Android EditText光标从头输入,可以调用EditText的setSelection(0)方法,将光标位置设置为0,即可让光标回到EditText的起始位置。示例代码如下:
```
EditText editText = findViewById(R.id.edit_text);
editText.setSelection(0);
```
这样就能让EditText的光标从头开始输入了。