2015-02-09 42 views
3

我有有很長的文本行像下面一個TextView:如何讓一個TextView一些具體的線路具有特定符號

$大家好我的名字是福特
我是一名電子工程師等等等等等等等等
和別的東西在這裏
所以其他文本....
$這就好比第一線另一行
等其他正常的文本

我的問題是,我怎麼才能得到那些具有第一個這些$符號線,並設置一些效果,只是像那些特定的線,如粗體和紅色..不是其他線...

任何想法? ?!
感謝您的幫助!

編輯:
請注意,我的textview文本是動態的,我不能爲某些特定的句子編寫代碼。我想寫一些代碼作爲模板到每一行,例如以$開頭,大膽或類似的東西。
而且我也想要$ symbole本身;在這個過程後我的文本視圖中不顯示!任何想法呢?

+1

嘗試使用Spannable字符串:http://stackoverflow.com/questions/26649344/android-use-bold-character-for-part-of-text – 2015-02-09 10:59:30

+1

http://stackoverflow.com/questions/26923782/how-to -make-a-part-of-text-bold-from-arraylist-in-android – 2015-02-09 11:00:00

回答

2

如果你已經對字符串文字,你可以在字符串值中使用分割功能,然後顯示與HTML格式的線,讓你能夠操縱的大小和位置的格式是一個示例:

 String stringValue="$your first line\n $your second line"; 
     String[] Splited=stringValue.split("$"); 
     //first line is in the Splited[0] and second line is in the Splited[1] 
     textview.setText(Html.fromHtml("<h2>Splited[0]</h2><br><p>Spl_j[Z B1]</p>"));; 

UPDATE: 您的模板可能是象下面這樣:

String[] Splited=stringValue.split("\n"); 
String msg="";   
    for(int i=0;i<Splited.length;i++){ 
     if(Splited[i].startsWith("$")) 
      msg=msg+"<b>"+Splited[i]+"</b>"; 
     else 
      msg=msg+Splited[i]; 

} 
textview.setText(Html.fromHtml(msg)); 
+0

我的textview文本是動態的,我不能爲某些特定的句子編寫代碼。我想寫一些代碼作爲模板到每一行,例如以$開頭,大膽或類似的東西。任何想法呢? – mohammadf255 2015-02-09 11:44:33

+1

我更新了我的答案,PLZ檢查 – amin 2015-02-09 12:12:21

+0

我測試了這段代碼,它的工作,我真的apreciate你的幫助。 非常感謝: - * – mohammadf255 2015-02-09 19:31:27

2

你也可以像這樣做,使用搜索和替換

String yourValue="$your first line\n $your second line"; 
String regex = "(\$.*)\n"; 
String formattedValue = yourValue.replaceAll(regex, "<b>$1</b>\n"); 
textview.setText(Html.fromHtml(formattedValue)); 
+0

我的textview文本是動態的,我不能爲某些特定的句子編寫代碼。 我想寫一些代碼作爲模板的每一行,例如以$開頭,是粗體或類似的東西。任何想法呢? – mohammadf255 2015-02-09 11:43:05

+1

用這些行創建一個函數 'public String formatString(String yourValue){ String regex =「(\ $。*)\ n」; String formattedValue = yourValue.replaceAll(regex,「$ 0 \ n」); return formattedValue; }' 每次將值設置爲您的文本視圖之前,將您的字符串傳遞給此函數 希望這有助於:) – dlohani 2015-02-09 11:55:19

+0

這是我的代碼: 'Intent myIntent = getIntent(); \t \t if(myIntent。hasExtra(「myExtra」)){ \t \t \t TextView mText =(TextView)findViewById(R.id.textView1); \t \t mText.setText(myIntent.getStringExtra(「myExtra」)); }' 這些是寫在我的靈活性,其中包含textView和這個textView是從getExtra另一個活動獲取其文本。 我的問題就是關於這種情況.. ,因爲我認爲你的建議代碼不起作用,因爲我已經爲這個文本視圖設置了文本。我會很感激任何建議。謝謝.. – mohammadf255 2015-02-09 15:48:21