2017-05-25 48 views
1

這是我的代碼,我想在我的Textview中放入兩種字體。我可以成功地實現一個代碼來做到這一點。我的問題是我想編輯變量text而不改變安排。我可以更改跨度文本android

String text = " my font1 , font 2 "; 
Typeface font,font1; 
font = Typeface.createFromAsset(getAssets(), "font.TTF"); 
font1 = Typeface.createFromAsset(getAssets(), "font1.TTF"); 
Spannable s = new SpannableString(text); 
s.setSpan(new CustomTypefaceSpan("", font), curpos, endpos, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
s.setSpan(new CustomTypefaceSpan("", font1), curpos, endpos, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
. 
. 
. 
. 
//want to chage variable text here ! 

我推測以下,但我沒有得到解決方案。

Set color of TextView span in Android

Android: Coloring part of a string using TextView.setText()?

TextView with different textSize

+0

我想如果你改變了文本,你將不得不再次爲這兩種字體調用'setSpan()'。爲了在代碼中看起來更好一點,你可以創建一個擴展'TextView'的類,該類有兩個setter用於不同的文本,並在封面下執行'setSpan()'調用。另一種可能的選擇是用HTML格式化文本,並使用'Html.fromHtml()'來準備它在標準TextView中使用。這是一個例子:https://stackoverflow.com/questions/2116162/how-to-display-html-in-textview。 – Bradford2000

回答

0

你可以嘗試這樣的事:

public void updateTextView(String toThis) { 
    TextView textView = (TextView) findViewById(R.id.textView); 
    textView.setText(toThis); 
// Put here your span, ... 
} 

並稱之爲function當你想更新textView