在TextView上添加响应事件到另一个activity

实现点击TextView上的文字的时候链接到另一个Activity,代码如下:

 

在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);  
    }  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值