Android 如何给文本视图加下划线,尝试了很多建议的方法

Android 如何给文本视图加下划线,尝试了很多建议的方法,android,Android,我试图在自定义对话框中使文本视图加下划线 我的XML: <TextView android:id="@+id/tv_terms_policies" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/terms_and_policies"

我试图在自定义对话框中使文本视图加下划线

我的XML:

         <TextView
            android:id="@+id/tv_terms_policies"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/terms_and_policies"           

            />
方法2

    <string name="terms_plans"><u>TERMS AND POLICIES</u></string>
条款和政策
方法:3

    tvTerms=(TextView) findViewById(R.id.tv_terms_policies);
    String htmlString="<u>TERMS AND POLICIES</u>";
    tvTerms.setText(Html.fromHtml(htmlString));
tvTerms=(TextView)findviewbyd(R.id.tv\u terms\u策略);
字符串htmlString=“条款和策略”;
setText(Html.fromHtml(htmlString));
不幸的是,这三种方法对我不起作用。 请建议其他方法。。 advnz中的thnx:)

在yout string.xml中

<string name="terms_plans"><u>TERMS AND POLICIES</u></string>
条款和政策
而不是在xml中使用

<TextView
android:id="@+id/tv_terms_policies"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/terms_plans"           
/>

我希望它能工作。

在yout string.xml中

<string name="terms_plans"><u>TERMS AND POLICIES</u></string>
条款和政策
而不是在xml中使用

<TextView
android:id="@+id/tv_terms_policies"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/terms_plans"           
/>


我希望它能起作用。

您可以在文本视图下方添加一个单独的视图,将它们都包含在线性或相对布局中,并将封闭视图的宽度设置为文本视图的宽度。

您可以在文本视图下方添加一个单独的视图,将它们都用线性或相对布局包围,并将包围视图的宽度设置为文本视图的宽度。

您可以使用
clickablespan
之类的

     ClickableSpan privacyPolicyClick = new ClickableSpan() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(LoginInstagramActivity.this,WebViewForPrivacyPolicyActivity.class));
            }
        };

        makeLinks(mBinding.tvPrivacyPolicy, new String[] { "Privacy Policy" }, new ClickableSpan[] {
                privacyPolicyClick
        }); //makeLinks method for selected under line area...
//此方法用于链接生成

  public void makeLinks(TextView textView, String[] links, ClickableSpan[] clickableSpans) {
        SpannableString spannableString = new SpannableString(textView.getText());
        for (int i = 0; i < links.length; i++) {
            ClickableSpan clickableSpan = clickableSpans[i];
            String link = links[i];

            int startIndexOfLink = textView.getText().toString().indexOf(link);
            spannableString.setSpan(clickableSpan, startIndexOfLink, startIndexOfLink + link.length(),
                    Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        }
        textView.setMovementMethod(LinkMovementMethod.getInstance());
        textView.setText(spannableString, TextView.BufferType.SPANNABLE);
    }
public void生成链接(TextView TextView,String[]链接,ClickableSpan[]ClickableSpan){
SpannableString SpannableString=新的SpannableString(textView.getText());
for(int i=0;i
你能像这样使用
可点击span

     ClickableSpan privacyPolicyClick = new ClickableSpan() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(LoginInstagramActivity.this,WebViewForPrivacyPolicyActivity.class));
            }
        };

        makeLinks(mBinding.tvPrivacyPolicy, new String[] { "Privacy Policy" }, new ClickableSpan[] {
                privacyPolicyClick
        }); //makeLinks method for selected under line area...
//此方法用于链接生成

  public void makeLinks(TextView textView, String[] links, ClickableSpan[] clickableSpans) {
        SpannableString spannableString = new SpannableString(textView.getText());
        for (int i = 0; i < links.length; i++) {
            ClickableSpan clickableSpan = clickableSpans[i];
            String link = links[i];

            int startIndexOfLink = textView.getText().toString().indexOf(link);
            spannableString.setSpan(clickableSpan, startIndexOfLink, startIndexOfLink + link.length(),
                    Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        }
        textView.setMovementMethod(LinkMovementMethod.getInstance());
        textView.setText(spannableString, TextView.BufferType.SPANNABLE);
    }
public void生成链接(TextView TextView,String[]链接,ClickableSpan[]ClickableSpan){
SpannableString SpannableString=新的SpannableString(textView.getText());
for(int i=0;i
这对我很有用:

<resources>
    <string name="your_string"><u>underline</u></string>
</resources>

强调
输出:

这对我来说很有用:

<resources>
    <string name="your_string"><u>underline</u></string>
</resources>

强调
输出:


您可以使用
视图
绘制下划线

          <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/tv_terms_policies"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/terms_and_policies"
                    android:textColor="#ffff00"
                    android:textSize="20sp" />

                <View
                    android:layout_width="match_parent"
                    android:layout_height="1dp"
                    android:background="#fff000" />
            </LinearLayout>

您可以使用
视图
绘制下划线

          <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/tv_terms_policies"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/terms_and_policies"
                    android:textColor="#ffff00"
                    android:textSize="20sp" />

                <View
                    android:layout_width="match_parent"
                    android:layout_height="1dp"
                    android:background="#fff000" />
            </LinearLayout>


试试这个
tvTerms.setPaintFlags(textview.getPaintFlags()| Paint.UNDERLINE_TEXT_FLAG)所有方法看起来都很完美!!。你试过一个接一个吗?。请确保您没有同时应用。逐个尝试b尝试此
tvTerms.setPaintFlags(textview.getPaintFlags()| Paint.UNDERLINE_TEXT_FLAG)所有方法看起来都很完美!!。你试过一个接一个吗?。确保你不是在同一时间申请。一个接一个地试过