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());
這行如果沒有寫的話,觸發是不會有反應的
留言
張貼留言