我从Contacts中获取数据并在textview中显示它。我希望有一部分是Bold。如何做到这一点。我试过这样做: sb.append(Html.fromHtml(“\ n”+“联系人姓名:”+姓名); 但它不起作用。任何人都可以帮助我
答案 0 :(得分:0)
您可以尝试以下代码
String text_view_str = "<b>Contact Name:</b>" + name;
TextView tv = (TextView)findViewById(R.id.ur_text_view_id);
tv.setText(Html.fromHtml(text_view_str));
答案 1 :(得分:0)
在你的字符串文件中
<string name="your_text">
<![CDATA[
<p> <b>Title</b> </p>
<p><b><i>Step 1</i></b><p>step1 content content content content content content</p></p>
<p><b><i>Step 2</i></b><p>step2 content content content content content content content</p></p>
]]>
</string>
然后在您的活动中
TextView tv=(TextView)findViewById(R.id.textView1);
tv.setText(Html.fromHtml(getString(R.string.your_text)));
----------------- OR -----------------------
只需在HTML中构建您的String并进行设置:
String sourceString = "<b>" + id + "</b> " + name;
mytextview.setText(Html.fromHtml(sourceString));
答案 2 :(得分:0)
尝试以下方式 -
sb.setText(Html.fromHtml("<b>" +" Contact Name:" + name + "</b>"));
如果这不能解决问题,请回复。
<强>更新强>
如果您只想将指定的文本追加到TextView的显示缓冲区,那么您的代码仍然不正确可能是一个错字。
你用过这个 -
sb.append(Html.fromHtml("\n"+" Contact Name:" + name);
而是使用它 -
sb.append(Html.fromHtml("<b>"+" Contact Name:" + name + "</b>"));
注意<b> tag
开头和</b> tag
结束。
另请注意,您尚未使用)
<强>更新强>
我猜你的StringBuffer
而不是TextView
。因此,您必须在TextView
中的StringBuffer
和不上进行设置。
让你的TextView是,
TextView tv = (TextView)findViewById(R.id.ur_text_view_id);
然后你只需执行以下操作---
tv.setText(Html.fromHtml("<b> Contact Name:</b>" + name));
<强>更新强>
由于您使用StringBuffer存储所有联系人详细信息,因此只需使用以下内容 -
//the below in a loop to add each name to string buffer
for(<loop through name length>)
sb.append("<br>" + "<b>Contact Name</b>:" + name);
//finally use this outside loop to set text to the textview.
tv.setText(Html.fromHtml(sb.toString()));
注意:最后一次UPDATE仅在第一行在循环中附加每个名称的字符串缓冲区时才有用。否则,您可以直接使用此答案的第二个最后更新。
答案 3 :(得分:0)
尝试使用spannable text
StringBuilder sb = new StringBuilder();
String s1 = "Contact Name:" ;
sb.append(s1);
String nameString = " name";
sb.append(nameString);
String s2 = "\nEmail :";
sb.append(s2);
String emailString = " email";
sb.append(emailString);
String s3 = "\nPhoneNo :";
sb.append(s3);
String phNoString = " 121564";
sb.append(phNoString);
SpannableString ss1= new SpannableString(sb);
ss1.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 0,s1.length(), 0);
ss1.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), s1.length() + nameString.length(),s1.length() + nameString.length()+s2.length(), 0);
ss1.setSpan(new StyleSpan(android.graphics.Typeface.BOLD),s1.length() + nameString.length()+s2.length()+emailString.length(), s1.length()+nameString.length()+s2.length()+emailString.length()+s3.length(), 0);
TextView tv= (TextView) findViewById(R.id.textview);
tv.setText(ss1);
答案 4 :(得分:0)
<强> 1 强>
SpannableStringBuilder sb = new SpannableStringBuilder("HELLOO");
final StyleSpan bss = new StyleSpan(android.graphics.Typeface.BOLD); // Span to make text bold
sb.setSpan(bss, 0, 4, Spannable.SPAN_INCLUSIVE_INCLUSIVE); // make first 4 characters Bold
etx.setText(sb);
<强> 2 强>
etx.setText(Html.fromHtml("HELLOO <b>ADVENTURE!</b>"));
尝试上面的代码。
答案 5 :(得分:0)
您需要在创建过程中以html格式设置字符串格式,然后在整个字符串上应用formHtml方法。 Html.formHtml()方法从提供的HTML字符串返回可显示的样式文本(Spanned)。如果你将这个方法应用于substring(带有html标签)之后将它们附加到StringBuffer,sb.append(Html.fromHtml(“\ n”+“&lt; b&gt; Contact Name&lt; / b&gt;:”+ name)实际上调用Spanned.toString()方法导致删除html标记,因此您在文本视图中查看纯文本。
试试这种方式 这将解决您的问题
StringBuffer sb=new StringBuffer();
sb.append("hello");
sb.append("<b>How</b>");
sb.append("are you");
tv.setText(Html.fromHtml(sb.toString()));