Ich arbeite an ClickableSpan
in einem TextView, und ich versuche, die geklickte span's Text zu bekommen. Das ist mein Code.Android ClickableSpan bekomme Text onClick()
// this is the text we'll be operating on
SpannableString text = new SpannableString("Lorem ipsum dolor sit amet");
// make "dolor" (characters 12 to 17) display a toast message when touched
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(View view) {
// This will get "Lorem ipsum dolor sit amet", but I just want "dolor"
String text = ((TextView) view).getText().toString();
Toast.makeText(context, text, Toast.LENGTH_LONG).show();
}
};
text.setSpan(clickableSpan, 12, 17, 0);
Wie Sie sehen können, habe ich die clickablespan
die die TextView
auf Zeichen 12 bis 17, und ich möchte diese Zeichen in der onClick
Ereignis bekommen.
Kann ich das überhaupt machen? Oder kann ich zumindest den Parameter 12, 17
an onClick
Ereignis übergeben?
Vielen Dank!
Danke pskink, es funktioniert! – TrungDQ
sicher, es tut ... fügen Sie die Schecks erwähnt in// TODOs – pskink
funktioniert auch für mehrere anklickbare Wörter :) danke! Aber warum funktioniert es? Damit OnClick die Ansicht erhält, die die Textansicht darstellt, gibt tv.getText das angeklickte Objekt "Überspannt" zurück, auch wenn andere Wörter mit der Bezeichnung "Spannbare Wörter" vorhanden sind. Wie funktioniert das? @pskink – fersarr