2014-01-26 34 views
3

我從EditText上讀值,並將其寫入TextView的安卓:每行10個字符限制的TextView

editTitle1.addTextChangedListener(new TextWatcher() { 
       public void afterTextChanged(Editable s) { 
       } 

       public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
       } 

       public void onTextChanged(CharSequence s, int start, int before, int count) { 
        s = editTitle1.getText().toString(); 
        textTitle1.setText(s); 

       } 
      }); 

而且我想,在一個線 - 最多10個字符,因此,如果所有的20個字符 - 它的兩個線路在TextView中,每行10個字符。我如何做到這一點? 我嘗試的android:最大長度=「10」,但它並不能幫助

回答

5

定義返回格式化後,將每行10個字符的字符串的方法:

public String getTenCharPerLineString(String text){ 

    String tenCharPerLineString = ""; 
    while (text.length() > 10) { 

     String buffer = text.substring(0, 10); 
     tenCharPerLineString = tenCharPerLineString + buffer + "/n"; 
     text = text.substring(10); 
    } 

    tenCharPerLineString = tenCharPerLineString + text.substring(0); 
    return tenCharPerLineString; 
} 
+0

工作正常。 gr8 ..謝謝。 – user1182217

0

添加下列2個屬性TextView的定義:

android:singleLine="false" 
android:maxems="10" 
+0

結果是一樣的:( – user3235688

+0

嘗試設置'android:maxWidth =「size」'而不是max ems,並將大小替換爲您喜歡的大小。例如,100dip。 –

+1

你也可以寫一個簡單的函數,在每10個字符之後添加一個換行符[像這裏](http://stackoverflow.com/a/537190/2333395) –

2

我編輯通過ramaral給出了答案,他用錯了轉義序列

public String getTenCharPerLineString(String text){ 

    String tenCharPerLineString = ""; 
    while (text.length() > 10) { 

     String buffer = text.substring(0, 10); 
     tenCharPerLineString = tenCharPerLineString + buffer + "\n"; 
     text = text.substring(10); 
    } 

    tenCharPerLineString = tenCharPerLineString + text.substring(0); 
    return tenCharPerLineString; 
}