2014-01-26 4 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 символами в строке. Как я могу это сделать? Стараюсь андроида: MAXLENGTH = «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 и замените размер "size" на размер, который вы предпочитаете. Например, 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; 
} 
Смежные вопросы