2015-12-02 3 views
0

Это мой textViewTextView SetText накладки предыдущего форматирования на TextView

InputStream is = getAssets().open(readFromFile); 
BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 
String line = reader.readLine(); 
arabicFont =Typeface.createFromAsset(getAssets(),"hactyp.ttf"); 
tv.setTypeface(arabicFont); 
SpannableStringBuilder ssb = new SpannableStringBuilder(message); 
ssb.setSpan(new UnderlineSpan(),0,message.length(),0); 
tv.setText(ssb); 
tv.setMovementMethod(new ScrollingMovementMethod()); 
while(line != null) { 
    if(message.equals(line)) { 
     while(!("end".equals(line))) { 
      line = reader.readLine(); 
      tv.setText(tv.getText() +" \n" + line); 
     } 
    } 
    line = reader.readLine(); 
} 
tv.setTextSize(24); 
is.close(); 
} 

Форматирование осуществляется промежуток становится перекрывается tv.setText (tv.getText() + "\ п" + строка); Поскольку есть одноэкранный вид. Кроме того, поскольку я читаю текстовый файл по строкам и добавляю к textView, пока не получу токен, это их лучший способ применить spanning в этом сценарии?

+2

Что именно вопрос? Чего вы пытаетесь достичь, чего не происходит? – NoChinDeluxe

+0

SpannableStringBuilder ssb = new SpannableStringBuilder (сообщение); ssb.setSpan (new UnderlineSpan(), 0, message.length(), 0); tv.setText (ssb); UnderLine не получает отражения в textView –

+0

Хотя я исправил свою проблему, создав временную строку и добавив весь текст, а затем применив к ней пробел, но мне любопытно, есть ли способ добавить текст по строкам, не делая getText каждый время и согласовать его. –

ответ

0

Вы не можете передать SpannableStringBuilder непосредственно tv.setText(); Вы должны вернуть строку из буфера, используя toString() так:

tv.setText(ssb.toString());

Вы также должны использовать toString() при вызове getText() на TextView. Таким образом, вы могли бы назвать, что как это:

tv.getText().toString()