Wie kann ich mehrere anklickbare Teile des Textes in TextView machen. Jeder anklickbare Teil muss seine eigene Aktion haben.Wie kann ich mehrere anklickbare Teile des Textes in TextView machen
19
A
Antwort
48
können Sie android.text.style.ClickableSpan
SpannableString ss = new SpannableString("Hello World");
ClickableSpan span1 = new ClickableSpan() {
@Override
public void onClick(View textView) {
// do some thing
}
};
ClickableSpan span2 = new ClickableSpan() {
@Override
public void onClick(View textView) {
// do another thing
}
};
ss.setSpan(span1, 0, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(span2, 6, 10, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(ss);
textView.setMovementMethod(LinkMovementMethod.getInstance());
3
Ich speichere Haupttext und anklickbare Wörter in verschiedenen Ressourcen verwenden.
Strings in Ressourcen sind für einige Konfigurationen nicht vorhanden.
String[] links = new String[3];
links[0] = cntx.getString(cntx.getResources().getIdentifier("footerLink1", "string", cntx.getPackageName()));
links[1] = cntx.getString(cntx.getResources().getIdentifier("footerLink2", "string", cntx.getPackageName()));
links[2] = cntx.getString(cntx.getResources().getIdentifier("footerLink3", "string", cntx.getPackageName()));
String text = String.format(cntx.getString(cntx.getResources().getIdentifier("footerDisclaimer", "string", cntx.getPackageName())), links[0], links[1], links[2]);
SpannableString ss = new SpannableString(text);
setSpanOnLink(ss, links[0], new ClickableSpan() {
@Override
public void onClick(View textView) {
Log.i("Disclaimer Footer", "1 click");
//TODO run item
}
});
setSpanOnLink(ss, links[1], new ClickableSpan() {
@Override
public void onClick(View textView) {
Log.i("Disclaimer Footer", "2 click");
//TODO run item
}
});
setSpanOnLink(ss, links[2], new ClickableSpan() {
@Override
public void onClick(View textView) {
Log.i("Disclaimer Footer", "3click");
//TODO run item
}
});
TextView t1 = new TextView(cntx);
t1.setTextSize(TypedValue.COMPLEX_UNIT_SP, 8);
t1.setText(ss);
t1.setMovementMethod(LinkMovementMethod.getInstance());
private void setSpanOnLink(SpannableString ss, String link, ClickableSpan cs) {
String text = ss.toString();
int start = text.indexOf(link);
int end = start + link.length();
ss.setSpan(cs, start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
-1
Dies ist für mich arbeiten:
in xml:
<TextView
android:id="@+id/tv_by_continuing_str"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:textSize="15sp"
tools:text="Test msg 1 2, 3"
android:textColor="@color/translucent_less_white3"
android:textColorLink="@color/white"
android:gravity="center|bottom"
android:layout_above="@+id/btn_privacy_continue" />
In strings.xml
< string name="by_continuing_str2">< ! [ CDATA[By continuing to use this app, you agree to our <a href="https://go.test.com" style="color:gray"/> Privacy Statement </a> and <a href="https://go.test.com" style="color:gray"/>Services Agreement.]]></string>
der Tätigkeit:
TextView tv_by_continuing = (TextView) findViewById(R.id.tv_by_continuing);
tv_by_continuing.setText(Html.fromHtml(getString(R.string.by_continuing_str2)));
tv_by_continuing.setMovementMethod(LinkMovementMethod.getInstance());
Verwandte Themen
- 1. Farbe des Textes in TextView ändert Farbe
- 2. Unterschiedliche Schrift für Teile des Textes
- 3. anklickbare Wort in TextView in Android
- 4. Teile des Textes hervorheben und Dialoge mit Informationen anzeigen?
- 5. Android Mehrere anklickbare Zeichenfolgen in Textansicht
- 6. Wie man anklickbare Punkte in HTML5 Canvas machen kann?
- 7. Wie kann ich bestimmte Wörter in einem TextView anklickbar machen?
- 8. Wie boldfont zu dem Teil des Textes in Itextsharp machen
- 9. Wie kann ich einen Teil des Textes fett in einer MS Word-Tabellenzelle machen?
- 10. Wie kann ich ein Bild in mehrere Teile teilen?
- 11. Wie kann ich Screenshot von gedrehten TextView mit Emoji machen?
- 12. Kann eine Redux-Aktion mehrere Teile des Statusbaums beeinflussen?
- 13. Wie man den ersten Buchstaben des Textes in einem TextView in einer Anwendung von Android
- 14. Machen Sie anklickbare UILabel mit Swift
- 15. Wie "Teile" des ASP.NET MVC-Ausgabecache "ungültig machen"?
- 16. Automatisches vertikales Scrollen des Textes
- 17. Wie Bild oben links oder Anfang und Ende des Textes in Textview Android hinzufügen?
- 18. Wie kann ich NSDate() in Teile aufteilen?
- 19. Wie mache ich einen Teil des Textes Fett in Android zur Laufzeit?
- 20. Android klickbare Textview Wie auf Text Mehr Click Regionen machen und Fangen Region Selection
- 21. Schrift des Textes in richtextbox
- 22. Kann ich Teile des Google App Engine-Codes in Java schreiben, andere Teile in Python?
- 23. Wie den Index des Textes in einem
- 24. Wie teile ich die Zeichenfolge in mehrere Wörter?
- 25. Wie ändere ich die Schriftart des Textes in Birt DEAPI
- 26. Wie bekomme ich die Höhe des Textes in einem Textfeld
- 27. Wie ändere ich die Farbe des Hyperlink-Textes in tinymce
- 28. Wie ändert man den TextView-Text bei Änderung des EditText-Textes?
- 29. anklickbare Körperbildes mit Swift (iOS)
- 30. Mehrere Bilder in einem TextView?
können Sie die Linkify für die Standardaktionen wie Telefon, E-Mail, Web verwenden .. – wolverine
Versuchen Sie es mit verschiedenen Textansichten. Leichte Abhilfe, wenn möglich. –
Verwenden Sie eine spannbare Zeichenfolge – Raghunandan