Android 控制部分文字『大小與變色』與『該文字點擊事件』
控制部分文字『大小與變色』與『該文字點擊事件』
有時候公司的一些設計常會出現,有部分文字要大小不同,顏色不同的情況,而如果是在做註冊頁面的話,有時候還會遇到要設置點擊功能(例如本文範例的服務條款及隱私權政策)
Java
- private void accpetSet() {
- String str1 = "點下完成即代表同意OO公司之";
- String str2 = "服務條款";
- String str3 = "及";
- String str4 = "隱私權政策";
- SpannableStringBuilder builder = new SpannableStringBuilder(str1 + str2 + str3 + str4);
- txt_accpet.setMovementMethod(LinkMovementMethod.getInstance());
- builder.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.colorBlue)),
- str1.length(), (str1 + str2).length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
- builder.setSpan(new TextClick(), str1.length(), (str1 + str2).length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
- builder.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.colorBlue)),
- (str1 + str2 + str3).length(), (str1 + str2 + str3 + str4).length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
- builder.setSpan(new TextClick2(), (str1 + str2 + str3).length(), (str1 + str2 + str3 + str4).length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
- txt_accpet.setText(builder);
- }
- /**
- * SpannableStringBuilder
- */
- private class TextClick extends ClickableSpan{
- @Override
- public void onClick(View widget) {
- Log.e("服務條款","TextClick");
- }
- }
- private class TextClick2 extends ClickableSpan{
- @Override
- public void onClick(View widget) {
- Log.e("隱私權政策","TextClick");
- }
- }
- }
要特別注意的是
- txt_accpet.setMovementMethod(LinkMovementMethod.getInstance());
這行如果沒有寫的話,觸發是不會有反應的
留言
張貼留言