Tôi đang làm việc trên ClickableSpan
trong một TextView và tôi đang cố gắng lấy văn bản của phạm vi được nhấp. Đây là mã của tôi.Android ClickableSpan nhận văn bản 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);
Như bạn thấy, tôi đặt clickablespan
các các TextView
để ký tự từ 12 đến 17, và tôi muốn để có được những nhân vật này trong trường hợp onClick
.
Tôi có thể làm điều đó không? Hoặc ít nhất tôi có thể chuyển thông số 12, 17
tới onClick
sự kiện?
Cảm ơn bạn!
Cảm ơn bạn pskink, nó hoạt động! – TrungDQ
chắc chắn, nó ... thêm các kiểm tra được đề cập trong.// TODOs – pskink
hoạt động ngay cả đối với nhiều từ có thể nhấp :) cảm ơn! Nhưng tại sao nó hoạt động? do đó OnClick nhận được xem đó là textview, sau đó làm tv.getText trả về đối tượng Spanned đã nhấp ngay cả khi có các từ Spannable khác. Làm thế nào là làm việc này? @pskink – fersarr