Ich möchte einen Link für einen Textansichtstext wie Google erstellen . Gibt es sowieso einen Link wie diesen zu machen. (dh) Wenn Sie auf das Wort Google klicken, sollte der entsprechende Link geöffnet werden. Ideen sind willkommen.
Ich möchte einen Link für einen Textansichtstext wie Google erstellen . Gibt es sowieso einen Link wie diesen zu machen. (dh) Wenn Sie auf das Wort Google klicken, sollte der entsprechende Link geöffnet werden. Ideen sind willkommen.
Antworten:
Versuchen Sie dies und lassen Sie mich wissen, was passiert.
Verwenden von Java-Code:
TextView textView =(TextView)findViewById(R.id.textView);
textView.setClickable(true);
textView.setMovementMethod(LinkMovementMethod.getInstance());
String text = "<a href='http://www.google.com'> Google </a>";
textView.setText(Html.fromHtml(text));
Ab API-Ebene> = 24 Html.fromHtml(String source)
ist veraltet, stattdessen verwenden fromHtml(String, int)
,
textView.setText(Html.fromHtml(text, Html.FROM_HTML_MODE_COMPACT));
Oder in einer Layout-XML-Datei in Ihren TextView-Widget-Attributen
android:autoLink="web"
android:linksClickable="true"
android:autoLink="web"
aus XML entfernen müssen . Ich hatte beides und es hat nicht funktioniert.
Verwenden Sie android:autoLink="web"
in der XML-Datei von TextView. Es sollte automatisch klickbare URLs konvertieren (falls im Text gefunden)
Alle getesteten und funktionierenden 100% igen
Lösung: android:autoLink="web"
Nachfolgend finden Sie ein vollständiges Beispiel für eine
Beispiellayout- XML
<TextView
android:id="@+id/txtLostpassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:autoLink="email"
android:gravity="center"
android:padding="20px"
android:text="@string/lostpassword"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/txtLostpassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:autoLink="web"
android:gravity="center"
android:padding="20px"
android:text="@string/defaultpassword"
android:textAppearance="?android:attr/textAppearanceSmall" />
String in string.xml
<string name="lostpassword">If you lost your password please contact <a href="mailto:support@cleverfinger.com.au?Subject=Lost%20Password" target="_top">support@cleverfinger.com.au</a></string>
<string name="defaultpassword">User Guide <a href="http://www.cleverfinger.com.au/user-guide/">http://www.cleverfinger.com.au/user-guide/</a></string>
Dies kann auch mithilfe der Standardeigenschaft von Textview erfolgen
android:autoLink="email"
Hinweis: - Html.fromHtml ist in Android N veraltet
Sie müssen überprüfen und unterstützen Android N
und höhere Versionen von Android
//Set clickable true
tagHeading.setClickable(true);
//Handlle click event
tagHeading.setMovementMethod(LinkMovementMethod.getInstance());
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
tagHeading.setText(Html.fromHtml("<a href='https://github.com/hiteshsahu'>https://github.com/hiteshsahu</a>", Html.FROM_HTML_MODE_LEGACY));
} else {
tagHeading.setText(Html.fromHtml("<a href='https://github.com/hiteshsahu'>https://github.com/hiteshsahu</a>"));
}
Alternative
Sie können nicht automatisch das AutoLink-Flag in TextView hinzufügen.
android: autoLink = "web"
android: linksClickable = "true"
Auf diese Weise müssen Sie keine <a href='somelink'>
Tags hinzufügen .
Das ist ein Nachteil, wenn Sie hinzufügen möchten , hyperlink
auf eine text
Sie es auf diese Weise nicht tun kann. zB kannst du so etwas nicht machen: - [ hiteshsahu ] [1]
<TextView
android:id="@+id/tag_info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tag_ll"
android:layout_gravity="left"
android:layout_margin="10dp"
android:autoLink="web"
android:linksClickable="true"
android:text="https://github.com/hiteshsahu"
android:textColor="@color/secondary_text" />
Das Ergebnis beider Ansätze:
Für die neueste Version des SDK fromHtml
ist veraltet. Verwenden Sie die folgende Zeile
String yourtext = "<a style='text-decoration:underline' href='http://www.sample.com'> Sample Website </a>";
if (Build.VERSION.SDK_INT >= 24) {
textView.setText(Html.fromHtml(yourtext, Html.FROM_HTML_MODE_LEGACY));
} else {
textView.setText(Html.fromHtml(yourtext));
}