Advertisement
Guest User

Untitled

a guest
Jul 25th, 2014
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.01 KB | None | 0 0
  1. textView.setMovementMethod(new LinkTouchMovementMethod());
  2. ssb = addClickablePart(chapterTextStr,markupCharactersArray, false);
  3.  
  4. textView.setText(ssb);
  5. // PARSE MARKERS AND CREATE CLICKABLE SPANS FUNCTION
  6. private static SpannableStringBuilder addClickablePart(
  7. String chapterTextStr2, final String[] mcArray,
  8. final boolean parseVocab) {
  9. SpannableStringBuilder ssb2 = new SpannableStringBuilder(chapterTextStr2);
  10.  
  11. String[] markupOpen = { "|*", "|_", "|=", "|@" };
  12. String [] markupClose = { "*|", "_|", "=|", "@|"};
  13. String [] spantype = { "idea", "topic", "detail", "dummy"};
  14. for( int i=0; i<markupOpen.length; i++){
  15. index = chapterTextStr2.indexOf(markupOpen[i]);
  16. index2 = 0;
  17. while (index != -1) {
  18.  
  19. index2 = chapterTextStr2.indexOf(markupClose[i], index);
  20. TouchableSpan touchableSpan = new TouchableSpan() {
  21.  
  22. @Override
  23. public void onClick(View widget) {
  24. this.setPressed(true);
  25.  
  26. if (selectedHighlighter == "detail") {
  27. this.setSpanColor(detailColor);
  28. this.setSpanTypeSelected("detailSelected");
  29. } else if (selectedHighlighter == "idea") {
  30. this.setSpanColor(ideaColor);
  31. this.setSpanTypeSelected("ideaSelected");
  32. } else if (selectedHighlighter == "topic") {
  33. this.setSpanColor(topicColor);
  34. this.setSpanTypeSelected("topicSelected");
  35. } else {
  36. this.setSpanColor(Color.TRANSPARENT);
  37. this.setSpanTypeSelected("");
  38. }
  39. }
  40.  
  41. private boolean mIsPressed;
  42.  
  43. public void setPressed(boolean isSelected) {
  44. mIsPressed = isSelected;
  45. }
  46.  
  47. // THIS UPDATES THE DRAW STATE TO CHANGE THE SPAN BACKGROUND COLOR DEPENDING ON THE "SELECTED HIGHLIGHTER"
  48. @Override
  49. public void updateDrawState(TextPaint ds) {
  50. int spanColor = this.getSpanColor();
  51. super.updateDrawState(ds);
  52. ds.setColor(Color.BLACK);
  53. ds.bgColor = mIsPressed ? spanColor : 0xffeeeeee;
  54. ds.setUnderlineText(false);
  55. }
  56.  
  57. };
  58. touchableSpan.setSpanType(spantype[i]);
  59. ssb2.setSpan(touchableSpan, index + 2, index2, 0);
  60.  
  61. try {
  62. chapterTextStr2 = chapterTextStr2.substring(0,index)
  63. +chapterTextStr2.substring(index+2,index2)
  64. +chapterTextStr2.substring(index2+2,chapterTextStr2.length());
  65. ssb2.delete(index, index+2);
  66. ssb2.delete(index2-2, index2);
  67. } catch(RuntimeException e) {
  68.  
  69. }
  70.  
  71. index = chapterTextStr2.indexOf(markupOpen[i],index2-4);
  72.  
  73. }
  74. }
  75.  
  76. chapterTextStr = chapterTextStr2;
  77.  
  78. return ssb2;
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement