0

我的string.xml

<!--I try to bold my argument %s, like below:-->
<string name="hello">Hello to: <b>%s</b> !</string>

我的布局main.xml

<LinearLayout
   ...>

<TextView
     android:id="@+id/hello_txt"
     ...
     .../>

</LinearLayout>

我的片段类:

public class MyFragment extends Fragment{
  TextView helloTxt;

  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
      super.onCreateView(inflater, container, savedInstanceState);

    helloTxt = (TextView) findViewById(R.id.hello_txt);

  }

  @Override
  public void onStart() {
     super.onStart();

     //pass "Monday" as the argument to my string
     helloTxt.setText(String.format(getString(R.string.hello), "Monday"));

  }
}

当我在我的设备上运行我的应用程序时,屏幕上显示“ Hello to: Monday! ”,但“ Monday ”不是粗体,但我<b>在我的string.xml中使用了。为什么不加粗??

4

3 回答 3

2

试试这个:

字符串.xml:

<string name="hello">Hello to:  &lt;b>%s&lt;/b>.</string>

在您的活动中:

TextView mytext1 = (TextView) findViewById(R.id.tx1);
mytext1.setText(Html.fromHtml(String.format(getString(R.string.hello), "Monday")));

这个对我有用。

希望它可以帮助你。

谢谢。

于 2012-12-12T11:24:09.827 回答
1

使用 Html.fromHTML() 方法

String str = HTML.fromHTML(String.format(getString(R.string.hello), "Monday"));
helloTxt.setText(str);
于 2012-12-12T11:00:44.050 回答
0

如果您正在使用html标记,那么您需要使用Html.fromHtml,如下所示:

String styledText = "This is <font color='red'>simple</font>.";

textView.setText(Html.fromHtml(styledText), TextView.BufferType.SPANNABLE);
于 2012-12-12T11:04:42.827 回答