How to detect this symbol: '' (OBJ in Dashed Box) in Android

50,374

You can use Html.fromHtml to retrieve the displayable styled text from the HTML content. To remove the image information from the styled text, use the following code:

public static Spanned removeImageSpanObjects(String inStr) {
    SpannableStringBuilder spannedStr = (SpannableStringBuilder) Html
            .fromHtml(inStr.trim());
    Object[] spannedObjects = spannedStr.getSpans(0, spannedStr.length(),
            Object.class);
    for (int i = 0; i < spannedObjects.length; i++) {
        if (spannedObjects[i] instanceof ImageSpan) {
            ImageSpan imageSpan = (ImageSpan) spannedObjects[i];
            spannedStr.replace(spannedStr.getSpanStart(imageSpan),
                    spannedStr.getSpanEnd(imageSpan), "");
        }
    }
    return spannedStr;
}
Share:
50,374
Marche101
Author by

Marche101

Android Dev, Living in London.

Updated on May 23, 2020

Comments

  • Marche101
    Marche101 about 4 years

    I'm building an app that parses an XML from a Wordpress site. As it runs on Wordpress a lot oft eh HTML which is used is actually stored as part of the text in the database and when I try to remove the HTML this symbol appears:

    Not sure if it is going to display correctly here but it is a small OBJ symbol in a dashed box and it appears in the text whenever the HTML parser tries to parse an image. Basically, what I want to is detect when this happens and remove it but I am having trouble being able to detect it in my code.

    The HTML code that I start with is shown here:

        05-21 11:26:05.402: I/System.out(6546): 
        <a id="dd_start"></a><p><strong><a href="http://movieboozer.com/wp-content/uploads/2012/05/the-avengers-poster.jpg" onclick="return TrackClick('http%3A%2F%2Fmovieboozer.com%2Fwp-content%2Fuploads%2F2012%2F05%2Fthe-avengers-poster.jpg','the-avengers-poster')"><img class="alignleft  wp-image-22470" style="margin-left: 10px; margin-right: 10px;" title="the-avengers-poster" src="http://movieboozer.com/wp-content/uploads/2012/05/the-avengers-poster.jpg" onclick="return TrackClick('http%3A%2F%2Fmovieboozer.com%2Fwp-content%2Fuploads%2F2012%2F05%2Fthe-avengers-poster.jpg','the-avengers-poster')" alt="" width="208" height="308" /></a>By: <a href="http://neauxreelidea.blogspot.com/" onclick="return TrackClick('http%3A%2F%2Fneauxreelidea.blogspot.com%2F','Bill+Arceneaux')">Bill Arceneaux</a> </strong><strong></strong><strong>(<a href="#verdict">A Toast</a>)<br /></strong><strong>Note: There is a rating embedded within this post, please visit this post to rate it.  </strong></p><p>I used to collect comic books. Yes, I admit it. I got swept up in the fantasy of characters with unique abilities beyond those of normal people, fighting over exaggerated villains in an effort to save their hometown, and in some cases, the world. I mostly focused on the Superman comics &#8211; during the period of time when he became pure energy (I was probably one of the few that liked that story arc) &#8211; but I certainly hadn’t chosen a side in the DC vs. Marvel fight. Why pigeonhole yourself to just one brand?<span id="more-22462"></span></p><p><a href="http://movieboozer.com/wp-content/uploads/2012/05/200px-Action_Comics_1.jpg" onclick="return TrackClick('http%3A%2F%2Fmovieboozer.com%2Fwp-content%2Fuploads%2F2012%2F05%2F200px-Action_Comics_1.jpg','200px-Action_Comics_1')"><img class="aligncenter size-full wp-image-22467" title="200px-Action_Comics_1" src="http://movieboozer.com/wp-content/uploads/2012/05/200px-Action_Comics_1.jpg" onclick="return TrackClick('http%3A%2F%2Fmovieboozer.com%2Fwp-content%2Fuploads%2F2012%2F05%2F200px-Action_Comics_1.jpg','200px-Action_Comics_1')" alt="" width="200" height="277" /></a></p><p style="text-align: center;">Never got my hands on that issue.</p><p>My collection eventually stopped &#8211; only a little more than a handful of issues remain. Was this just a passing fancy? I think, personally, I just yearned for something more; something to give the pages a new life in my eyes, without insulting my devotion to the mythology. In the last decade, we’ve seen movies that range from bastardized toy commercials to unique creative interpretations. But, have we seen the best that comic book movies can be?</p><p>If we haven’t yet, <em>The Avengers</em> might just be it. The culmination of millions of dollars in production budgets and years of origin stories, this story has HIGH expectations:</p><p>After finding his way out of a cosmic abyss (as seen in <em>Thor</em>), Loki (Tom Hiddleston) makes a play and captures the Tesseract (as seen in <em>Captain America: The First Avenger</em>) – a cube of energy that could prove dangerous if in the wrong hands – from S.H.I.E.L.D. (as seen in all previous Marvel Cinematic Universe films). Nick Fury (Samuel L. Jackson) is forced to restart the Avengers Initiative – a program to bring together Earth’s mightiest heroes – in a last ditch effort to get the cube back and stop Loki from leading an alien army.</p><p>Of course, this means that Fury must bring together a group of people who probably shouldn’t be in the same room together; Iron Man (Robert Downey Jr.), CaptainAmerica(Chris Evans), Dr. Bruce Banner AKA The Hulk (Mark Ruffalo), Thor (Chris Hemsworth), Black Widow (Scarlett Johansson) and Hawkeye (Jeremy Renner). Can these heroes put their difference aside and conquer their own inner problems in time to save the world?</p><p><strong>A Toast</strong></p><p>Have you ever had an awesome-gasm? … Did I just invent a new word to describe a movie?</p><p><a href="http://movieboozer.com/wp-content/uploads/2012/05/hulk.jpg" onclick="r.......
    

    And this is what it looks like afterwards:

       05-21 11:26:05.585: I/System.out(6546): : Bill Arceneaux (A Toast)
       05-21 11:26:05.585: I/System.out(6546): Note: There is a rating embedded within this post, please visit this post to rate it.  
       05-21 11:26:05.585: I/System.out(6546): I used to collect comic books. Yes, I admit it. I got swept up in the fantasy of characters with unique abilities beyond those of normal people, fighting over exaggerated villains in an effort to save their hometown, and in some cases, the world. I mostly focused on the Superman comics – during the period of time when he became pure energy (I was probably one of the few that liked that story arc) – but I certainly hadn’t chosen a side in the DC vs. Marvel fight. Why pigeonhole yourself to just one brand?
       05-21 11:26:05.585: I/System.out(6546): 
       05-21 11:26:05.585: I/System.out(6546): Never got my hands on that issue.
       05-21 11:26:05.585: I/System.out(6546): My collection eventually stopped – only a little more than a handful of issues remain. Was this just a passing fancy? I think, personally, I just yearned for something more; something to give the pages a new life in my eyes, without insulting my devotion to the mythology. In the last decade, we’ve seen movies that range from bastardized toy commercials to unique creative interpretations. But, have we seen the best that comic book movies can be?
       05-21 11:26:05.585: I/System.out(6546): If we haven’t yet, The Avengers might just be it. The culmination of millions of dollars in production budgets and years of origin stories, this story has HIGH expectations:
       05-21 11:26:05.589: I/System.out(6546): After finding his way out of a cosmic abyss (as seen in Thor), Loki (Tom Hiddleston) makes a play and captures the Tesseract (as seen in Captain America: The First Avenger) – a cube of energy that could prove dangerous if in the wrong hands – from S.H.I.E.L.D. (as seen in all previous Marvel Cinematic Universe films). Nick Fury (Samuel L. Jackson) is forced to restart the Avengers Initiative – a program to bring together Earth’s mightiest heroes – in a last ditch effort to get the cube back and stop Loki from leading an alien army.
       05-21 11:26:05.589: I/System.out(6546): Of course, this means that Fury must bring together a group of people who probably shouldn’t be in the same room together; Iron Man (Robert Downey Jr.), CaptainAmerica(Chris Evans), Dr. Bruce Banner AKA The Hulk (Mark Ruffalo), Thor (Chris Hemsworth), Black Widow (Scarlett Johansson) and Hawkeye (Jeremy Renner). Can these heroes put their difference aside and conquer their own inner problems in time to save the world?
       05-21 11:26:05.589: I/System.out(6546): A Toast
       05-21 11:26:05.589: I/System.out(6546): Have you ever had an awesome-gasm? … Did I just invent a new word to describe a movie?
       05-21 11:26:05.589: I/System.out(6546): 
       05-21 11:26:05.589: I/System.out(6546): HULK SMASH EXPECTATIONS!
       05-21 11:26:05.589: I/System.out(6546): With a cast of characters and actors this big, you would think things might get a bit muddled. But, with lots of clever photography, editing and dialogue, everything works out. Each hero – even Hawkeye and Black Widow – gets time to shine. And I don’t just mean moments where they look pretty and badass; each hero has personality and conflict. We actually get a little bit of depth here! It could have easily been a dumb action film, but instead chose to be a really good comic book.
       05-21 11:26:05.589: I/System.out(6546): Marvel could’ve easily picked a team of hack writers and a yes man director to helm this project, expecting to make their money back on brand recognition alone. Instead, they picked a fan friendly writer/director who understands how the audience feels about these characters, and really delivered something special. Sure, the depth I described doesn’t go into superhero psychology levels, but it’s exactly where we need it to be. This really is just about perfect.
       05-21 11:26:05.589: I/System.out(6546): Create a Drink
       05-21 11:26:05.589: I/System.out(6546): At one point in the film, Loki is offered a drink. He turns it down, but that doesn’t mean you shouldn’t. Just for fun, come up with your own Loki inspired beverage (but be safe about it). Some people at the midnight screening I attended were dressed as their favorite characters; why not pay homage to them in liquid courage form?
       05-21 11:26:05.589: I/System.out(6546): Verdict
       05-21 11:26:05.589: I/System.out(6546): 
       05-21 11:26:05.589: I/System.out(6546): Comic book movies rarely get any better than this. This isn’t to knock the other superhero flicks coming out this year (they’ll probably be great for different reasons), but the bar has been reset. Maybe the genre should be split into comic book, graphic novel and one off categories, in an effort to better tell the good from the bad? All I know for sure is, I feel like dusting off my old Action Comics issues.
    

    I have a feeling this problem may be down to java as much as it is the android system

    Thanks for your help!

    Edit: This is the first place where the symbol occurs in the HTML:

    <span id="more-22462"></span></p><p><a href="http://movieboozer.com/wp-content/uploads/2012/05/200px-Action_Comics_1.jpg" onclick="return TrackClick('http%3A%2F%2Fmovieboozer.com%2Fwp-content%2Fuploads%2F2012%2F05%2F200px-Action_Comics_1.jpg','200px-Action_Comics_1')"><img class="aligncenter size-full wp-image-22467" title="200px-Action_Comics_1" src="http://movieboozer.com/wp-content/uploads/2012/05/200px-Action_Comics_1.jpg" onclick="return TrackClick('http%3A%2F%2Fmovieboozer.com%2Fwp-content%2Fuploads%2F2012%2F05%2F200px-Action_Comics_1.jpg','200px-Action_Comics_1')" alt="" width="200" height="277" />
    
  • Marche101
    Marche101 about 12 years
    Since this returns a Spanned what do I do with this? I've tried using toString but that still gives me the same problem as before.
  • Marche101
    Marche101 about 12 years
    Also, If I try to use the spannedStr straight into the setText of the textview it gives me the same error of having the OBJ symbols everywhere.
  • Rajesh
    Rajesh about 12 years
    The example removes the <img> elements. Check your HTML code to see which elements are causing the OBJ symbols in your case.
  • Marche101
    Marche101 about 12 years
    Ill amend my first post with where the symbol first appears in the html.
  • Marche101
    Marche101 about 12 years
    This is very odd... I cant even post the code where the symbo first occurs. It just appears as a blank space.
  • Marche101
    Marche101 about 12 years
    You can find the problem code here: shrib.com/7k7UeYox
  • Rajesh
    Rajesh about 12 years
    What version of SDK are you using? I tried with your HTML and I am not facing any issues.
  • Marche101
    Marche101 about 12 years
    Ah, Ive got it working now. I was just being really stupid about it. Thanks Rajesh!
  • chhameed
    chhameed about 9 years
    @Marche101 you must post your solutions for future google user
  • Marche101
    Marche101 about 9 years
    I'm afraid this was 3 years ago now so I can't remember my exact solution and I have since moved jobs from when I implemented it. IIRC I wasn't implementing the above solution correctly and so the above answer is correct.