我有一个文本视图,它有一个在xml文件中设置的文本,在strings.xml中有下划线。现在我正在改变这个textview形式的edittext中的内容,即用户输入的内容。在将该文本设置为textview之前,我还附加了一些字符串。我希望这个新的字符串形成为带有蓝色和可点击的下划线。我尝试使用
SpannableString phoneNum = new SpannableString(totalPhoneNum);
phoneNum.setSpan(new UnderlineSpan(), 0, totalPhoneNum.length(), 0);
phoneNum.setText(totalPhoneNum);
这不起作用!我可以在onResume()中使用它吗 我不知道如何将下划线的颜色更改为蓝色:(
答案 0 :(得分:3)
TextView中有三种方法可以支持文本。
TextView的setPaintFlags();
- 醇>
让我向您解释所有方法:
第一种方法
对于TextView中的文本,您必须使用SpannableString
String udata="Underlined Text"; SpannableString content = new SpannableString(udata); content.setSpan(new UnderlineSpan(), 0, udata.length(), 0); mTextView.setText(content);
第二种方法
您可以使用TextView的setPaintFlags方法为TextView的文本加下划线。
例如。
mTextView.setPaintFlags(mTextView.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); mTextView.setText("This text will be underlined");
如果你想通过文本进行攻击,你可以引用Paint类的常量。
第3种方法
利用
Html.fromHtml(htmlString);
String htmlString="<u>This text will be underlined</u>"; mTextView.setText(Html.fromHtml(htmlString));
答案 1 :(得分:0)
你可以这样使用
phoneNum.setText(Html.fromHtml("W : "+"<u><FONT COLOR=\"#80776b\" >"+Your text+"</Font></u>"));
使用您想要的颜色代码。
答案 2 :(得分:0)
试试这个
String txt = "<u style=\"text-decoration: none; border-bottom: 1px solid #FF0000\">parragraph</u>";
phoneNum.setText(Html.fromHtml(txt));
此样式将删除默认下划线,并将我们传递的颜色的边框底部设置为1 px。
答案 3 :(得分:0)
使用此:
String text = "some string <u><font color=\"#00FF00\">some link</font></u>";
editText.setText(Html.fromHtml(text), TextView.BufferType.SPANNABLE);
答案 4 :(得分:0)
的xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="@string/hello" />
</LinearLayout>
的java:
public class TextDemoActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new ViewWithRedDot(this));
}
}
class ViewWithRedDot extends View {
public ViewWithRedDot(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
Paint circlePaint = new Paint();
Typeface mType = Typeface.create(Typeface.SANS_SERIF, Typeface.ITALIC);
circlePaint.setTextSize(25);
circlePaint.setColor(Color.RED);
circlePaint.setTypeface(mType);
canvas.drawText("Default Typeface", 50, 100, circlePaint);
//
circlePaint.setFlags(Paint.UNDERLINE_TEXT_FLAG);
circlePaint.setColor(Color.YELLOW);
canvas.drawText("Underline Text Flag", 50, 120, circlePaint);
//
circlePaint.setFlags(Paint.STRIKE_THRU_TEXT_FLAG);
circlePaint.setColor(Color.GREEN);
canvas.drawText("Strike Thru Text Flag", 50, 140, circlePaint);
//
circlePaint.setFlags(Paint.ANTI_ALIAS_FLAG);
circlePaint.setColor(Color.WHITE);
canvas.drawText("Anti Alias Flag", 50, 160, circlePaint);
//
circlePaint.setFlags(Paint.DEV_KERN_TEXT_FLAG);
circlePaint.setColor(Color.WHITE);
canvas.drawText("Dev Kern Text Flag", 50, 180, circlePaint);
//
circlePaint.setFlags(Paint.FAKE_BOLD_TEXT_FLAG);
circlePaint.setColor(Color.CYAN);
canvas.drawText("Fake Bold Text Flag", 50, 200, circlePaint);
}
}
答案 5 :(得分:0)
在布局xml文件中添加以下代码:
<TextView
android:autoLink="phone"
android:linksClickable="true"
android:textColorLink="#5e9baa" />