0

我想使用 java 模式在 TextView 中应用粗体和大写样式。但是,粗体样式不适用于大写文本,因为该元素<b>在 is 时不起作用<B>

前任:

TextView textview = (TextView) findViewById(R.id.textView1);
textview.setText(Html.fromHtml("message `<b>`example`</b>`");

String text = textview.getText().toString();
textview.setText(text.toUpperCase());

回报:

信息示例;

预期的:

消息示例

4

5 回答 5

1

现在我可以做到:

例子:

TextView textview = (TextView) findViewById(R.id.textView1);

String text = "测试<b>示例</b>";

textview.setText(Html.fromHtml(text.toUpperCase()));

返回测试示例

于 2013-09-17T17:32:44.093 回答
0

首先定义一个字符串资源为:

<string name="formatted_text">%1$s &lt;b>%2$d&lt;/b></string>

然后在你的活动中;做就是了

String text1 = "message";
String text2 = "example";
String textFormat = getResources().getString(R.string.formatted_text);
TextView textview = (TextView) findViewById(R.id.textView1);
textview.setText(Html.fromHtml(String.format(textFormat, text1, text2.toUpperCase()));
);

使用资源不是必需的,但我更喜欢以这种方式使用它。

于 2013-09-16T20:44:44.607 回答
0
// try this
**string.xml**
<string name="example_message">example &lt;b>message&lt;/b></string>

**Activity**
TextView textview = (TextView) findViewById(R.id.textView1);
textview.setText(Html.fromHtml(((getString(R.string.example_message).toUpperCase()).replace("<B>","<b>")).replace("</B>","</b>")));
于 2013-09-17T04:59:58.423 回答
0

由于您必须能够决定要加粗的文本部分,您可以将顺序转过来。

在这种情况下,“example”.toUpperCase() 并将其包装起来然后。所以<b>标签不会是大写的

String examplePart = "example";
String messagePart = "message";

String finalConstruct = messagePart + "<b>" + examplePart.toUpperCase() + "</b>"

textView.setText(Html.fromHtml(finalConstruct));

这应该可以解决问题

于 2013-09-16T19:12:20.297 回答
0

只需在. replace("<B>", "<b>")_ _replace("</B>", "</b>")text.toUpperCase()setText()

于 2013-09-16T19:10:50.623 回答