【问题标题】:How to get some specific lines in a textview that have a particular symbol如何在具有特定符号的文本视图中获取某些特定行
【发布时间】:2015-02-09 10:52:07
【问题描述】:

我有一个文本视图,它有一个长文本行,如下所示:

$你好,我的名字是福特
我是一名电子工程师,所以等等等等
还有这里的其他东西
所以其他文本....
$and 这是与第一行类似的另一行
等等其他普通文本

我的问题是,我怎样才能只获得第一行带有 $ 符号的行,并为那些特定的行设置一些效果,例如粗体和红色......而不是其他行......

有什么想法吗??!
感谢您的帮助!

编辑:
请注意,我的 textview 文本是动态的,我无法为某些特定句子编写代码。我想为每一行编写一些代码作为模板,例如以 $ 开头,加粗或类似的东西。
我也想要 $ 符号本身;在此过程之后不会显示在我的文本视图中!有什么想法吗?

【问题讨论】:

标签: java android textview


【解决方案1】:

如果您已经在 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));

【讨论】:

  • 我的 textview 文本是动态的,我无法为某些特定的句子编写代码。我想为每一行编写一些代码作为模板,例如以 $ 开头,粗体或类似的东西。有什么想法吗?
  • 我已经测试了这段代码并且它有效,我真的很感谢你的帮助。非常感谢:-*
【解决方案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));

【讨论】:

  • 我的 textview 文本是动态的,我无法为某些特定句子编写代码。我想为每一行编写一些代码作为模板,例如以 $ 开头,加粗或类似的东西。有什么想法吗?
  • 每次在为您的文本视图设置值之前,使用这些行 public String formatString(String yourValue){ String regex = "(\$.*)\n"; String formattedValue = yourValue.replaceAll(regex, "&lt;b&gt;$0&lt;/b&gt;\n"); return formattedValue; } 创建一个函数,将您的字符串传递给该函数希望这会有所帮助:)
  • 这是我的代码:Intent myIntent = getIntent(); if (myIntent.hasExtra("myExtra")){ TextView mText = (TextView)findViewById(R.id.textView1); mText.setText(myIntent.getStringExtra("myExtra")); } 这些写在我的包含 textView 的活动中,并且这个 textView 正在使用 getExtra 从另一个活动中获取其文本。我的问题就是关于这种情况.. 因为我认为您建议的代码不起作用,因为我已经为此文本视图设置了文本。我会很感激任何建议。谢谢..
  • 像这样修改你的代码,并在上面的函数中包含你的活动Intent myIntent = getIntent(); if (myIntent.hasExtra("myExtra")){ TextView mText = (TextView)findViewById(R.id.textView1); mText.setText(formatString(myIntent.getStringExtra("myExtra"))); }
猜你喜欢
  • 1970-01-01
  • 2014-10-04
  • 2018-01-05
  • 1970-01-01
  • 2020-07-21
  • 2017-07-08
  • 1970-01-01
  • 2020-04-13
  • 1970-01-01
相关资源
最近更新 更多