How to unbold and unhighlight the selected text in edittext android











up vote
1
down vote

favorite












Hi I am able to bold or highlight the selected text but when try to unhighlight or unbold in that bolded or highlighted text then it unbold or unhighlight the whole text. Please tell me what I am doing wrong with my code. Here is my code



private void highlightTextCondition() {
int selectionStart = bodyText.getSelectionStart();
int selectionEnd = bodyText.getSelectionEnd();
if (selectionStart > selectionEnd) {
int temp = selectionEnd;
selectionEnd = selectionStart;
selectionStart = temp;
}

if (selectionEnd > selectionStart) {
Spannable str = bodyText.getText();
boolean exists = false;

for (CharacterStyle span : str.getSpans(selectionStart, selectionEnd, CharacterStyle.class)) {
if (span instanceof BackgroundColorSpan)
str.removeSpan(span);
exists = true;
}
if (!exists) {
str.setSpan(new BackgroundColorSpan(Color.YELLOW), selectionStart, selectionEnd, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}

bodyText.setSelection(selectionStart, selectionEnd);
}









share|improve this question




























    up vote
    1
    down vote

    favorite












    Hi I am able to bold or highlight the selected text but when try to unhighlight or unbold in that bolded or highlighted text then it unbold or unhighlight the whole text. Please tell me what I am doing wrong with my code. Here is my code



    private void highlightTextCondition() {
    int selectionStart = bodyText.getSelectionStart();
    int selectionEnd = bodyText.getSelectionEnd();
    if (selectionStart > selectionEnd) {
    int temp = selectionEnd;
    selectionEnd = selectionStart;
    selectionStart = temp;
    }

    if (selectionEnd > selectionStart) {
    Spannable str = bodyText.getText();
    boolean exists = false;

    for (CharacterStyle span : str.getSpans(selectionStart, selectionEnd, CharacterStyle.class)) {
    if (span instanceof BackgroundColorSpan)
    str.removeSpan(span);
    exists = true;
    }
    if (!exists) {
    str.setSpan(new BackgroundColorSpan(Color.YELLOW), selectionStart, selectionEnd, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    }

    bodyText.setSelection(selectionStart, selectionEnd);
    }









    share|improve this question


























      up vote
      1
      down vote

      favorite









      up vote
      1
      down vote

      favorite











      Hi I am able to bold or highlight the selected text but when try to unhighlight or unbold in that bolded or highlighted text then it unbold or unhighlight the whole text. Please tell me what I am doing wrong with my code. Here is my code



      private void highlightTextCondition() {
      int selectionStart = bodyText.getSelectionStart();
      int selectionEnd = bodyText.getSelectionEnd();
      if (selectionStart > selectionEnd) {
      int temp = selectionEnd;
      selectionEnd = selectionStart;
      selectionStart = temp;
      }

      if (selectionEnd > selectionStart) {
      Spannable str = bodyText.getText();
      boolean exists = false;

      for (CharacterStyle span : str.getSpans(selectionStart, selectionEnd, CharacterStyle.class)) {
      if (span instanceof BackgroundColorSpan)
      str.removeSpan(span);
      exists = true;
      }
      if (!exists) {
      str.setSpan(new BackgroundColorSpan(Color.YELLOW), selectionStart, selectionEnd, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
      }

      bodyText.setSelection(selectionStart, selectionEnd);
      }









      share|improve this question















      Hi I am able to bold or highlight the selected text but when try to unhighlight or unbold in that bolded or highlighted text then it unbold or unhighlight the whole text. Please tell me what I am doing wrong with my code. Here is my code



      private void highlightTextCondition() {
      int selectionStart = bodyText.getSelectionStart();
      int selectionEnd = bodyText.getSelectionEnd();
      if (selectionStart > selectionEnd) {
      int temp = selectionEnd;
      selectionEnd = selectionStart;
      selectionStart = temp;
      }

      if (selectionEnd > selectionStart) {
      Spannable str = bodyText.getText();
      boolean exists = false;

      for (CharacterStyle span : str.getSpans(selectionStart, selectionEnd, CharacterStyle.class)) {
      if (span instanceof BackgroundColorSpan)
      str.removeSpan(span);
      exists = true;
      }
      if (!exists) {
      str.setSpan(new BackgroundColorSpan(Color.YELLOW), selectionStart, selectionEnd, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
      }

      bodyText.setSelection(selectionStart, selectionEnd);
      }






      java android






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 2 days ago









      Sz-Nika Janos

      407216




      407216










      asked Nov 4 at 9:45









      Galaxy Apps

      65




      65





























          active

          oldest

          votes











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














           

          draft saved


          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53139491%2fhow-to-unbold-and-unhighlight-the-selected-text-in-edittext-android%23new-answer', 'question_page');
          }
          );

          Post as a guest





































          active

          oldest

          votes













          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes
















           

          draft saved


          draft discarded



















































           


          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53139491%2fhow-to-unbold-and-unhighlight-the-selected-text-in-edittext-android%23new-answer', 'question_page');
          }
          );

          Post as a guest




















































































          這個網誌中的熱門文章

          Xamarin.form Move up view when keyboard appear

          Post-Redirect-Get with Spring WebFlux and Thymeleaf

          Anylogic : not able to use stopDelay()