2012-08-15 14 views

risposta

8

Hai provato questo

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

Anche se le spannables si perde con questo metodo.

+2

Is sono solo io o sembra molto brutto anche agli altri? C'è una ragione per cui Android non include un antefatto() o qualcosa di simile? – Tim

+0

Immagino che append venga usato frequentemente. Quindi Android fornisce append come funzione di convenienza – nandeesh

2

Quindi utilizzare la stringa che si desidera aggiungere dire "ciao" al TextView come

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

Motivo per il downvoting ??? –

7

Se siete preoccupati per spannables, si può usare qualcosa di simile:

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

Il getEditableText() restituisce null a me. Invece, da anteporre testo a un spannable, ho impostato il buffertype testo per SPANNABLE: in codice:

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

o utilizzando la proprietà XML android:bufferType sul TextView.

poi gettato il getText() per Spannable, dopo di che ho concat il testo in più con un testo esistente:

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

Per quanto posso dire tutte le funzioni sono disponibili dal livello di API 1.

+0

Delle molteplici soluzioni errate che ho trovato disseminato per questo, questa è l'unica soluzione che funziona davvero. Assolutamente pazzo che non ci sia un modo più sano per farlo. Sotto il mio simile codice approfittando di questo. 'code' setText (getText(), TextView.BufferType.SPANNABLE); CurrentTextText = (Spannable) getText(); CharSequence indexedText = TextUtils.concat ("(", currentText, ")"); setText (indexedText); 'codice' –

Problemi correlati