1. 程式人生 > >Android探索之路:在介面上實現超連結進行跳轉

Android探索之路:在介面上實現超連結進行跳轉

TextView agree = (TextView) findViewById(R.id.agree);//找到相應的控制元件
TextView login = (TextView) findViewById(R.id.login);
//藉助SpannableString類實現超連結文字
   agree.setText(getClickableSpan());
   login .setText(getClickableSpan2());
 //設定超連結可點選
   agree.setMovementMethod(LinkMovementMethod.getInstance());
   login.setMovementMethod(LinkMovementMethod.getInstance());

private SpannableString getClickableSpan() {
        SpannableString spannableString = new SpannableString("註冊即代表已閱讀並同意使用條款和隱私政策");
        //設定下劃線文字
        spannableString.setSpan(new UnderlineSpan(), 11, 15, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        //設定文字的單擊事件
        spannableString.setSpan(new ClickableSpan() {
            @Override
            public void onClick(View widget) {
                // Toast.makeText(MainActivity.this,"使用條款",Toast.LENGTH_LONG).show();
                Intent intent=new Intent(RegisterActivity.this,UserOrPrivacy.class);
                intent.putExtra("data","use");
                startActivity(intent);
            }
        }, 11, 15, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        //設定文字的前景色
        spannableString.setSpan(new ForegroundColorSpan(Color.RED), 11, 15, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        //設定下劃線文字
        spannableString.setSpan(new UnderlineSpan(), 16, 20, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        //設定文字的單擊事件
        spannableString.setSpan(new ClickableSpan() {
            @Override
            public void onClick(View widget) {
                //  Toast.makeText(MainActivity.this,"隱私政策",Toast.LENGTH_LONG).show();
                Intent intent=new Intent(RegisterActivity.this,UserOrPrivacy.class);
                intent.putExtra("data","privacy");
                startActivity(intent);
            }
        }, 16, 20, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        spannableString.setSpan(new ForegroundColorSpan(Color.RED), 16, 20, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        return spannableString;
    }
    private SpannableString getClickableSpan2(){
        SpannableString spannableString2 = new SpannableString("已有賬號,前去登入");
        spannableString2.setSpan(new UnderlineSpan(), 7, 9, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        spannableString2.setSpan(new ClickableSpan() {
            @Override
            public void onClick(View widget) {
                Intent intent=new Intent(RegisterActivity.this,LoginActivity.class);
                intent.putExtra("name",name);
                startActivity(intent);
            }
        }, 7, 9, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        spannableString2.setSpan(new ForegroundColorSpan(Color.RED), 7, 9, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        return spannableString2;
    }
總的來說思路很簡單,其實就是,在一段話中擷取一部分需要點選的字,設定上顏色和下劃線,再設定上點選事件進行跳轉就可以了。。