Android 控制部分文字『大小與變色』與『該文字點擊事件』

控制部分文字『大小與變色』與『該文字點擊事件』

有時候公司的一些設計常會出現,有部分文字要大小不同,顏色不同的情況,而如果是在做註冊頁面的話,有時候還會遇到要設置點擊功能(例如本文範例的服務條款及隱私權政策)


Java

  1. private void accpetSet() {
  2.  
  3. String str1 = "點下完成即代表同意OO公司之";
  4. String str2 = "服務條款";
  5. String str3 = "及";
  6. String str4 = "隱私權政策";
  7.  
  8. SpannableStringBuilder builder = new SpannableStringBuilder(str1 + str2 + str3 + str4);
  9. txt_accpet.setMovementMethod(LinkMovementMethod.getInstance());
  10.  
  11. builder.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.colorBlue)),
  12. str1.length(), (str1 + str2).length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
  13. builder.setSpan(new TextClick(), str1.length(), (str1 + str2).length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
  14.  
  15. builder.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.colorBlue)),
  16. (str1 + str2 + str3).length(), (str1 + str2 + str3 + str4).length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
  17. builder.setSpan(new TextClick2(), (str1 + str2 + str3).length(), (str1 + str2 + str3 + str4).length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
  18.  
  19. txt_accpet.setText(builder);
  20. }
  21.  
  22. /**
  23. * SpannableStringBuilder
  24. */
  25. private class TextClick extends ClickableSpan{
  26. @Override
  27. public void onClick(View widget) {
  28. Log.e("服務條款","TextClick");
  29. }
  30. }
  31. private class TextClick2 extends ClickableSpan{
  32. @Override
  33. public void onClick(View widget) {
  34. Log.e("隱私權政策","TextClick");
  35. }
  36. }
  37. }
要特別注意的是
  1. txt_accpet.setMovementMethod(LinkMovementMethod.getInstance());
這行如果沒有寫的話,觸發是不會有反應的

留言

這個網誌中的熱門文章

Android 在Fragment下控制輸入鍵盤

jQuery獲取Select選擇的Text和Value(轉)

GCM推播與螢幕喚醒