Android探索之路:在介面上實現超連結進行跳轉
阿新 • • 發佈:2019-01-22
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; }