在java代码中这样调用:
//设置上一页textView的事件响应intent
LinkifyUtil linkify = new LinkifyUtil(this);
Intent page_up_intent = new Intent(Anim.this,ActivityMain.class);
linkify.addIntentLink(page_up_intent, page_up);
辅助类LinkifyUtil代码:
public class LinkifyUtil {
private final Activity currentActivity;
public LinkifyUtil(Activity activity) {
this.currentActivity = activity;
}
public void addIntentLink(final Intent intent, final TextView view, final int start, final int end) {
CharSequence source = view.getText();
if (source instanceof Spanned) {
IntentSpan[] spans = ((Spanned) source).getSpans(start, end, IntentSpan.class);
if (spans.length > 0) {
return;
}
}
SpannableString spannableString = new SpannableString(source);
spannableString.setSpan(new IntentSpan(new OnClickListener() {
public void onClick(View view) {
currentActivity.startActivity(intent);
}
}), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
view.setText(spannableString);
view.setMovementMethod(LinkMovementMethod.getInstance());
}
public void addIntentLink(final Intent intent, final TextView view) {
addIntentLink(intent, view, 0, view.getText().toString().length());
}
}
IntentSpan代码:
package com.utils;
import android.text.style.ClickableSpan;
import android.view.View;
import android.view.View.OnClickListener;
/**
*
* @author huanghaifeng
*/
public class IntentSpan extends ClickableSpan {
private final OnClickListener listener;
public IntentSpan(View.OnClickListener listener) {
this.listener = listener;
}
@Override
public void onClick(View view) {
listener.onClick(view);
}
}