在设备屏幕上显示时,为什么我的文字不是粗体

时间:2012-12-12 10:56:26

标签: android android-layout android-emulator

我的 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 ”不是粗体,但我在 string.xml 中使用了<b>。为什么不大胆?

3 个答案:

答案 0 :(得分:2)

试试这个:

String.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")));

它对我有用。

希望它对你有所帮助。

感谢。

答案 1 :(得分:1)

使用Html.fromHTML()方法

String str = HTML.fromHTML(String.format(getString(R.string.hello), "Monday"));
helloTxt.setText(str);

答案 2 :(得分:0)

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

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

textView.setText(Html.fromHtml(styledText), TextView.BufferType.SPANNABLE);