是否有任何简单的方法可以在edittext的句子开头之前添加空格。假设我想输入
"Hello my name is Zohan.
I am from kochi"
它应该显示为
" Hello my name is Zohan.
"I am from kochi.
更具体地说,无论如何只在多行支持的ediText中为第一行提供填充?
显然填充功能没有完成任务。
答案 0 :(得分:2)
使用LeadingMarginSpan
https://developer.android.com/reference/android/text/style/LeadingMarginSpan.Standard.html
public void setIndent(int length) {
//First remove the original indent(s)
for (LeadingMarginSpan span : getText().getSpans(0, getText().length(), LeadingMarginSpan.class)) {
getText().removeSpan(span);
}
mIndent = new LeadingMarginSpan.Standard(length, 0);
getText().setSpan(mIndent, 0, 0, 0);
}
答案 1 :(得分:2)
您可以将TextChangedListener
添加到EditText
,这会在您将第一行添加到EditText
时触发,同时我添加了一个布尔值,这只会触发一次:
在全局范围内添加此boolean
:boolean isSpaceAdded=false;
mEdittextContent.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
if(!isSpaceAdded) {
if (mEdittextContent.getLineCount() > 1) {
mEdittextContent.removeTextChangedListener(this);
String editstring= mEdittextContent.getText().toString();
mEdittextContent.getText().clear();
mEdittextContent.setText(" "+editstring);
isSpaceAdded=true;
mEdittextContent.addTextChangedListener(this);
}
}
}
});
这里有什么意义:
在更改TextChangedListener
文字之前,您必须删除EditText's
。截图:
答案 2 :(得分:1)
String myString = editText.getText().toString();
myString = " " + myString;
editText.setText(myString);
这应该有效
答案 3 :(得分:1)
一种可能性是在EditText
文本的开头添加一些空格。因此,您需要添加一个TextChangedListener,如下所示:
yourEditText.addTextChangedListener(new TextWatcher(){
public void afterTextChanged(Editable s) {
String text = yourEditText.getText().toString();
//I'm adding four whitespaces in this example...
if (!text.substring(0,4).equals(" ") {
text = " " + text;
}
yourEditText.setText(text);
}
public void beforeTextChanged(CharSequence s, int start, int count, int after){}
public void onTextChanged(CharSequence s, int start, int before, int count){}
});
答案 4 :(得分:1)
这可能听起来有点像菜鸟的方式,但您可以尝试在编程Edittext
的{{1}}开头添加一些空格,并且当从Edittext中提取文本时,您可以将其子串到删除您在开头添加的空格
答案 5 :(得分:1)
您可以获取文本框中的所有行,在所需的行后面添加空格,然后将te文本框的文本设置为您更新的文本。