我尝试练习。
在我的应用中,我会有一个问题。学生会选择正确的答案。
当学生选择此答案时。
我希望它会显示在textview上并带有下划线。
我知道使用它会带有下划线。
jp.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);
但是它会强调孔的圣诞老人。...
我只是想用一句话来做。
例如:
小说 非常好。(小说必须下划线)
我只想强调“新颖”
我该怎么办?
这是我的代码:
public class Santance extends AppCompatActivity {
Button bt1;
TextView jp;
String str1="This",str2="is good";
String myans="";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.santance);
bt1=(Button)findViewById(R.id.bt1);
jp=(TextView)findViewById(R.id.jp);
bt1.setOnClickListener(bt_1);
}
private Button.OnClickListener bt_1=new Button.OnClickListener(){
@Override
public void onClick(View v) {
myans="novel";
jp.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);
jp.setText(str1+"("+myans+")"+str2);
}
};
private void mytoast(String str)
{
Toast toast=Toast.makeText(this, str, Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
}
}
谢谢。
SpannableString content = new SpannableString(myans);
content.setSpan(new UnderlineSpan(), 0, myans.length(), 0);
jp.setText(str1+"("+content+")"+str2);
我使用jp.setText(content)会成功。
但是当我添加其他字符串时,下划线会消失。(但我需要添加其他字符串。...
为什么?
答案 0 :(得分:2)
如果您要使用资源文件夹中的字符串,请像这样设置,
<resources>
<string name="any_string_key">
My name is <u>Dhaval</u>.
</string>
</resources>
并按如下所示将其加载到textview中,
textView.setText(Html.fromHtml(getString(R.id.any_string_key)));
如果您要动态加载字符串,请使用以下代码。
TextView tv = (TextView) view.findViewById(R.id.tv);
SpannableString content = new SpannableString("Content"); // Here set the text you want to make underline.
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
tv.setText(content);
更新:
要合并多个跨度,
SpannableString myStr1 = new SpannableString(str1);
SpannableString myStr2 = new SpannableString(str2);
SpannableString underlineContent = new SpannableString("Content");
underlineContent.setSpan(new UnderlineSpan(), 0, content.length(), 0);
tv.setText(TextUtils.concat(myStr1, " (", underlineContent, ") ", myStr2));
答案 1 :(得分:0)
请尝试其他方法。那就是Html.fromhtml()
textView.setText(Html.fromHtml("This <u>novel</u> is very good"));
HTML将在其打开和关闭标记之间的任何单词下划线。