Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- textView.setMovementMethod(new LinkTouchMovementMethod());
- ssb = addClickablePart(chapterTextStr,markupCharactersArray, false);
- textView.setText(ssb);
- // PARSE MARKERS AND CREATE CLICKABLE SPANS FUNCTION
- private static SpannableStringBuilder addClickablePart(
- String chapterTextStr2, final String[] mcArray,
- final boolean parseVocab) {
- SpannableStringBuilder ssb2 = new SpannableStringBuilder(chapterTextStr2);
- String[] markupOpen = { "|*", "|_", "|=", "|@" };
- String [] markupClose = { "*|", "_|", "=|", "@|"};
- String [] spantype = { "idea", "topic", "detail", "dummy"};
- for( int i=0; i<markupOpen.length; i++){
- index = chapterTextStr2.indexOf(markupOpen[i]);
- index2 = 0;
- while (index != -1) {
- index2 = chapterTextStr2.indexOf(markupClose[i], index);
- TouchableSpan touchableSpan = new TouchableSpan() {
- @Override
- public void onClick(View widget) {
- this.setPressed(true);
- if (selectedHighlighter == "detail") {
- this.setSpanColor(detailColor);
- this.setSpanTypeSelected("detailSelected");
- } else if (selectedHighlighter == "idea") {
- this.setSpanColor(ideaColor);
- this.setSpanTypeSelected("ideaSelected");
- } else if (selectedHighlighter == "topic") {
- this.setSpanColor(topicColor);
- this.setSpanTypeSelected("topicSelected");
- } else {
- this.setSpanColor(Color.TRANSPARENT);
- this.setSpanTypeSelected("");
- }
- }
- private boolean mIsPressed;
- public void setPressed(boolean isSelected) {
- mIsPressed = isSelected;
- }
- // THIS UPDATES THE DRAW STATE TO CHANGE THE SPAN BACKGROUND COLOR DEPENDING ON THE "SELECTED HIGHLIGHTER"
- @Override
- public void updateDrawState(TextPaint ds) {
- int spanColor = this.getSpanColor();
- super.updateDrawState(ds);
- ds.setColor(Color.BLACK);
- ds.bgColor = mIsPressed ? spanColor : 0xffeeeeee;
- ds.setUnderlineText(false);
- }
- };
- touchableSpan.setSpanType(spantype[i]);
- ssb2.setSpan(touchableSpan, index + 2, index2, 0);
- try {
- chapterTextStr2 = chapterTextStr2.substring(0,index)
- +chapterTextStr2.substring(index+2,index2)
- +chapterTextStr2.substring(index2+2,chapterTextStr2.length());
- ssb2.delete(index, index+2);
- ssb2.delete(index2-2, index2);
- } catch(RuntimeException e) {
- }
- index = chapterTextStr2.indexOf(markupOpen[i],index2-4);
- }
- }
- chapterTextStr = chapterTextStr2;
- return ssb2;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement