如何在textview中获取具有特定符号的特定行

时间:2015-02-09 10:52:08

标签: java android textview

我的textview有一个很长的文本行,如下所示:

$你好,我所有的名字都是福特 我是一名电子工程师,所以等等等等 还有别的什么 所以其他文本......
$和这是第一行的另一条线 以及其他正常文本

我的问题是我怎样才能得到第一个带有$符号的线条,并将一些效果设置为粗体和红色等特定线条......而不是其他线条......

任何想法??! 谢谢你的帮助!

编辑:
请注意我的textview文本是动态的,我不能为某些特定句子编写代码。我想将一些代码作为模板写入每一行,例如以$开头,粗体或类似的东西。
而且我想要$ symbole本身;在此过程之后,我的文本视图中没有显示!对此有何想法?

2 个答案:

答案 0 :(得分:2)

如果你已经在String上有文本,你可以在String值上使用split函数,然后用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>"));;

更新: 您的模板可能如下所示:

 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));

答案 1 :(得分: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));