是否有任何简单的方法可以在edittext

时间:2016-06-27 09:58:26

标签: android

是否有任何简单的方法可以在edittext的句子开头之前添加空格。假设我想输入

 "Hello my name is Zohan.
  I am from kochi"

它应该显示为

"           Hello my name is Zohan.
"I am from kochi.

更具体地说,无论如何只在多行支持的ediText中为第一行提供填充?

显然填充功能没有完成任务。

6 个答案:

答案 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时触发,同时我添加了一个布尔值,这只会触发一次:

在全局范围内添加此booleanboolean 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。截图:

enter image description here

答案 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文本框的文本设置为您更新的文本。