2015-02-09 32 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