textView 中的文本未显示,但 java 代码有效。如果我将 autoLink="web" 标签添加到 textview ,文本会显示但 java 代码不会

Text In textView is not showing but the java code work. If i add autoLink="web" tag to textview , the text shows but java code doesn't

textView 中的文本未显示,但 java 代码有效。如果我将 autoLink="web" 标签添加到 textview ,文本会显示,但 java 代码不起作用。当按下 textview 时,用户应该被重定向到联系人电子邮件。

这是文本视图 xml。

<TextView
        android:id="@+id/textViewContact"
        android:layout_width="match_parent"
        android:layout_height="75dp"
        android:layout_marginBottom="250dp"
        android:autoLink="email"
        android:fontFamily="@font/rubik_bold"
        android:textAlignment="center"
        android:textColor="#FFFFFF"
        android:textSize="30sp"
        android:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

如果我添加任何自动链接标签,textview 中的文本会显示,但用户不会重定向到电子邮件。 如果我删除标签,用户将被重定向到电子邮件,但文本视图文本不会显示。

这是 java 代码:

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.net.MailTo;
import android.net.Uri;
import android.os.Bundle;
import android.text.Html;
import android.text.method.LinkMovementMethod;
import android.view.View;
import android.widget.TextView;

public class ContactUs extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_contact_us);

        TextView mail =(TextView) findViewById(R.id.textViewContact);
        mail.setText(Html.fromHtml("<a href=\"mailto:confidential@gmail.com\">Contact Us</a>"));
        mail.setMovementMethod(LinkMovementMethod.getInstance());

    }
}

在此先感谢您的帮助!

您需要将以下代码添加到您的 activity,因为您使用的方法已弃用

对于 kotlin,使用下面的代码片段

 if (Build.VERSION.SDK_INT >= 24) {
        mail.text = Html.fromHtml("<a href=\"mailto:confidential@gmail.com\">Contact Us</a>",Html.FROM_HTML_MODE_LEGACY)
    } else {
        mail.text = Html.fromHtml("<a href=\"mailto:confidential@gmail.com\">Contact Us</a>")
    }

对于Java,使用下面的行

if (Build.VERSION.SDK_INT >= 24) {
        mail.setText(Html.fromHtml("<a href=\"mailto:confidential@gmail.com\">Contact Us</a>",Html.FROM_HTML_MODE_LEGACY));
    } else {
        mail.setText(Html.fromHtml("<a href=\"mailto:confidential@gmail.com\">Contact Us</a>"));
}

也不需要在 TextView 标签中使用 autolink 属性。您可以跳过 xml 中的这一行,您将能够看到“联系我们”文本,单击 link 将导航至 gmail。