Текст в textView не отображается, но код Java работает. Если я добавлю тег autoLink = "web" в текстовое представление, текст будет отображаться, но код Java не будет работать. При нажатии текстового просмотра пользователь должен быть перенаправлен на контактный адрес электронной почты.

Это текстовое представление 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" />

Если я добавлю какой-либо тег autoLink, текст в текстовом окне отображается, но пользователь не перенаправляется на электронную почту. Если я удалю тег, пользователь будет перенаправлен на электронную почту, но текст текстового просмотра не отображается.

Это код 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());

    }
}

Заранее благодарим за помощь!

0
Markus Strugari 21 Сен 2020 в 11:10

1 ответ

Лучший ответ

Вам необходимо добавить приведенный ниже код в свою деятельность, поскольку используемый вами метод устарел.

Для котлина используйте нижеприведенный фрагмент кода

 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>"));
}

Также нет необходимости в свойстве autolink в теге TextView. Вы можете пропустить эту строку в xml, и вы сможете увидеть текст «Свяжитесь с нами», а щелкнув ссылку, вы перейдете в Gmail. введите описание изображения здесь

1
Priyanka Rajput 21 Сен 2020 в 10:42