2012-08-15 18 views

Respuesta

8

Has probado esto

textview.setText(" append string" + textView.getText()); 

Aunque los spannables se pierden por este método.

+2

Es solo yo, ¿o esto parece muy feo para otras personas también? ¿Hay alguna razón por la cual Android no incluya un prepend() o algo similar? – Tim

+0

supongo que se usa con frecuencia. Por lo tanto, Android proporciona un anexo como función de conveniencia – nandeesh

2

A continuación, utilice la cadena que desea anexar decir "hola" a la TextView como

textview.setText("hello"+textView.getText()) 
+0

Motivo de downvoting ??? –

7

Si usted está preocupado por spannables, se puede usar algo como esto:

textView.getEditableText().insert(0, "string to prepend"); 
3

El getEditableText() me devuelve nulo. En cambio, para anteponer texto a un spannable, me puse la buffertype texto para SPANNABLE: en código:

myTextView.setText(myText, TextView.BufferType.SPANNABLE); 

o el uso de la propiedad xml android:bufferType en su Vista de Texto.

Luego tire la getText() para Spannable, después de lo cual ConCat el texto adicional con el texto existente:

Spannable currentText = (Spannable) tvTitle.getText(); 
CharSequence indexedText = TextUtils.concat(String.format("%d. ", index), currentText); 
myTextView.setText(indexedText); 

Por lo que yo puedo decir todas las funciones están disponibles desde el nivel del API 1.

+0

De las múltiples soluciones incorrectas que he encontrado esparcidas por esto, esta es la única solución que realmente funciona. Absolutamente loco que no hay una manera más sensata de hacerlo. Debajo de mi código similar que se aprovecha de esto. 'código' setText (getText(), TextView.BufferType.SPANNABLE); Spannable currentText = (Spannable) getText(); CharSequence indexedText = TextUtils.concat ("(", currentText, ")"); setText (indexedText); 'código' –