html - Android - Getting error when using fromHtml() to show content in a TextView -


basically objective show wordpress' post in activity requesting json. first request, later fill results inside object variables. variables object show in fields on view.

this how make request:

private void parsejsonfeed(jsonobject response) {     jsonobject feedobj;      try     {         if (response.length() != 0)         {             feedobj = response;              jsonobject co = feedobj.getjsonobject("terms").getjsonarray("category").getjsonobject(0);             category c = new category(escapenull(co.getstring("name"), true), co.getint("id"));              itempost.setid(feedobj.getint("id"));             itempost.settitulo(escapenull(feedobj.getstring("title"), true));              if (!feedobj.isnull("featured_image"))                 itempost.setimgurl(escapenull(feedobj.getjsonobject("featured_image").getstring("source"), false));             else                 itempost.setimgurl(null);              itempost.setdata(ajustdata(escapenull(feedobj.getstring("date"), false)));             itempost.setposturl(escapenull(feedobj.getstring("link"), false));             itempost.setcategoria(c);             itempost.setauthor(escapenull(feedobj.getjsonobject("author").getstring("name"), false));             itempost.setconteudo(feedobj.getstring("content"));              loadlayout();         }      }     catch (jsonexception e)     { e.printstacktrace(); }  } 

details feedobj.getstring("content") string contains following html code:

<p>recentemente saiu uma lista com os possíveis candidatos para interpretar o novo <strong>homem-aranha</strong> no novo <strong>universo cinematográfico da marvel</strong>. saiba agora qual deles merece o papel e quem realmente devia encarar o <strong>homem-aranha</strong>!</p> <p>esqueça <strong>dylan o&#8217;brien</strong>, esqueça <strong>logan lerman</strong>, esqueça qualquer um com mais de 20 anos. <strong>marvel</strong> quer um<strong> homem-aranha</strong> mais colegial, que tenha entre 15~16 anos<em> &#8211; pelo menos visualmente falando</em>. por este motivo, teremos apenas jovens atores cotados para o papel!</p> <p>recentemente, uma lista com possíveis candidatos foi lançada e já é possível especular quem merece entrar na pela homem-aranha e participar de todo universo de filmes que será criado entre marvel e <strong>sony</strong>. aliás, já falamos, o quanto isso é bom para marvel <em><a href="http://osupernerd.com.br/cinema/como-o-novo-homem-aranha-vai-ajudar-a-marvel/">- veja aqui</a>!</em></p> <h2>o perfil homem-aranha</h2> <a href="http://osupernerd.com.br/wp-content/uploads/2015/03/homem-aranha.jpg"><img src="http://osupernerd.com.br/wp-content/uploads/2015/03/homem-aranha-1024x576.jpg"/></a><p>a única coisa que preciso é ver esse uniforme novamente nos cinemas.</p> <p><strong>o espetacular homem-aranha 2</strong> não foi lá aquelas coisas, mas algo que você não pode negar é que o homem-aranha foi bem representado. um homem-aranha brincalhão, dá <em>&#8220;zoeira&#8221;</em>. É certamente o homem-aranha que precisamos nos cinemas.</p> <p>por outro lado, o <strong>peter</strong> de <strong>andrew garfield</strong> foi um dramático romântico e, por vezes, descolado até demais. ele, digamos, estava um pouco <em>hipster</em> demais, o que foge peter que conhecemos. nesse caso, eu preferiria o peter desajeitado de <strong>tobey maguire</strong> e o homem-aranha descolado de andrew garfield.</p> <p>como o <strong>universo marvel</strong> nos cinemas é cheio de alívios cômicos, é muito provável que essa seja linha com que eles trabalhem. então teremos um adolescente desajeitado que faz de tudo para se encaixar na escola, é bem inteligente e acha super <em>&#8220;irado&#8221;</em> estar com os <strong>vingadores</strong>. o homem-aranha da <em>&#8220;zoeira&#8221;</em> também está dentro de peter!</p> <p>assim, o mais importante é encontrar um ator que consiga fazer esse equilíbrio. não seja chato demais, não seja dramático demais, que seja apenas um adolescente inteligente que acha super-heróis mais que maneiro.</p> <h2>#1 timothee chalamet</h2> <a href="http://osupernerd.com.br/wp-content/uploads/2015/04/timothee-chalamet.jpg"><img src="http://osupernerd.com.br/wp-content/uploads/2015/04/timothee-chalamet.jpg"/></a><p>tem uma cara de rebelde, mas dependendo da atuação quem sabe pode ser um bom peter.</p> <p><strong>timothee chalamet</strong> ainda não apareceu muito. podemos dizer que você vai conhecê-lo por <strong>interstelar</strong>, representando <strong>tom</strong>, com 15 anos, filho de <strong>cooper</strong>. sinceramente, ele não tem tanto destaque, parece ser perfeito para representar um adolescente rebelde.</p> <p>ele já deu um ponta como estudante em <strong>homeland</strong>, apesar personagem ser outro. você não consegue olhar para ele e ver o <strong>peter parker</strong> desajeitado que conhecemos e adoramos, tanto nos quadrinhos quanto em algumas animações.</p> <h2>#2 nat wolff</h2> <a href="http://osupernerd.com.br/wp-content/uploads/2015/04/nat-wolff.jpg"><img src="http://osupernerd.com.br/wp-content/uploads/2015/04/nat-wolff.jpg"/></a><p>não se encaixa muito com o personagem, pelo menos na idade visual que eles procuram.</p> <p><strong>nat wolff</strong> popularizou em <strong>a culpa é das estrelas</strong>, como <strong>isaac</strong>, amigo de <strong>gus</strong>. está ai um ator que não tem nada haver com peter, e já aparenta ser mais velho. entretanto, <strong>vincent d&#8217;onofrio</strong> <em>- o rei crime, em demolidor -</em> está fazendo uma baita de uma campanha para marvel chamar nat para ser peter. quer contrária-lo?</p> <p>uma prova de que essa lista pode ser apenas uma especulação é que ontem, 24 de abril, <a href="http://comicbook.com/2015/04/24/nat-wolff-talks-spider-man-rumors/">nat foi questionado pela <strong>mtv</strong></a> sobre ser o candidato para homem-aranha, e ele respondeu: <em>&#8220;honestamente, eu não sei nada sobre homem-aranha&#8221;</em>. talvez foi um desvio de atenção, ou será que ele realmente não é um candidato?!</p> <h2>#3 liam james</h2> <a href="http://osupernerd.com.br/wp-content/uploads/2015/04/liam-james.jpg"><img src="http://osupernerd.com.br/wp-content/uploads/2015/04/liam-james.jpg"/></a><p>É cara peter parker estilo disney.</p> <p><strong>liam james</strong> há tempos que não dá caras nos cinemas. seu último filme foi <strong>o verão da minha vida</strong>, em 2013. única coisa que tenho para dizer é que ele tem um baita de um potencial e ele é cara da <strong>disney</strong>, só isso já é mais que suficiente. quanto sua atuação para peter, só depende de seu teste.</p> <h2>#4 tom holland</h2> <a href="http://osupernerd.com.br/wp-content/uploads/2015/04/tom-holland.jpg"><img src="http://osupernerd.com.br/wp-content/uploads/2015/04/tom-holland.jpg"/></a><p>sinto que ele será última opção da marvel entre todos.</p> <p>sua primeira grande aparição foi em <strong>o impossível</strong>, depois disso não ganhou tanto destaque. ele não fez tantos papeis também, é difícil julgá-lo. mas eu sinto que, para marvel, ele seria última opção dentre todos.</p> <h2>#5 asa butterfield</h2> <a href="http://osupernerd.com.br/wp-content/uploads/2015/04/asa-butterfield.jpg"><img src="http://osupernerd.com.br/wp-content/uploads/2015/04/asa-butterfield.jpg"/></a><p>asa butterfield tem cara de peter parker inteligente.</p> <p>o <strong>asa butterfield</strong>, com certeza, é o que mais todos ouviram falar. ele está em <strong>ender&#8217;s game: o jogo exterminador</strong>, <strong>a invenção de hugo cabret</strong> e <strong>o menino pijama listrado</strong>. o garoto <em>- que já tem 18 anos -</em> é um grande ator. ele transparece o peter inteligente, mas será que ele seria bom o suficiente para o homem-aranha?</p> <p>grande parte dos papeis de asa tem uma grande carga dramática, ele precisa se desafiar muito para se soltar e fazer um peter empolgado com os vingadores. não consigo ver ele como o cara das piadinhas, entende?</p> <h2>quem deve ser o homem-aranha?</h2> <p>se fosse escolher pelo mais conhecido, escolheria o asa, sem dúvidas. como eu disso ele é um grande ator, saberia fazer o que fosse preciso. ele seria o <strong>nerd</strong> e inteligente parker, talvez até demais. nesse ponto, asa está mais para <strong>sheldon</strong> <em>- big bang theory -</em> que para peter.</p> <p>o grande problema é que ele se tornou<em> &#8220;especialista&#8221;</em> em drama, e em personagens com uma grande carga nas costas. se ele consegue ser o homem-aranha da zoeira e o peter parker nerd<em> &#8211; sem dramas -</em> só o teste dele dirá. esse é um dos aspectos que faz com que ao mesmo tempo que torço para o asa, também não torço.</p> <p>por outro lado, liam james é cara da disney, reparou?! É um dos que não mostrou ainda no que é bom, mas provou que pode ser bom. também é um dos que menos apareceu, junto com <strong>tom holland</strong>. se marvel, procura por alguém que não é tão concorrido para realizar contrato por longos anos, liam é o cara.</p>  <h2>e, sinceramente, quero asa, por popularidade, mas aposto em liam! e você?</h2> 

how can see there no error in html code

well, after made request call loadlayout() fill fields in view:

private void loadlayout() {     textview title = (textview) findviewbyid(r.id.title_post);     textview date = (textview) findviewbyid(r.id.date_post);     textview category = (textview) findviewbyid(r.id.category_post);     textview author = (textview) findviewbyid(r.id.author_post);     textview conteudo = (textview) findviewbyid(r.id.content_post);      title.settext(itempost.gettitulo());     date.settext(itempost.getdata());     category.settext(itempost.getcategoria().getnome());     author.settext(itempost.getauthor());     conteudo.settext(html.fromhtml(itempost.getconteudo())); } 

the problem is... in line conteudo.settext(html.fromhtml(itempost.getconteudo())) returning error, can see:

04-25 21:11:43.715    6611-6611/br.com.osupernerd.osupernerd e/androidruntime﹕ fatal exception: main java.lang.arrayindexoutofboundsexception: length=500; index=4057         @ android.text.measuredtext.addstylerun(measuredtext.java:168)         @ android.text.measuredtext.addstylerun(measuredtext.java:204)         @ android.text.staticlayout.generate(staticlayout.java:281)         @ android.text.staticlayout.<init>(staticlayout.java:140)         @ android.text.staticlayout.<init>(staticlayout.java:80)         @ android.text.staticlayout.<init>(staticlayout.java:59)         @ android.widget.textview.makesinglelayout(textview.java:5901)         @ android.widget.textview.makenewlayout(textview.java:5741)         @ android.widget.textview.onmeasure(textview.java:6098)         @ android.view.view.measure(view.java:15172)         @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:4814)         @ android.widget.linearlayout.measurechildbeforelayout(linearlayout.java:1390)         @ android.widget.linearlayout.measurevertical(linearlayout.java:681)         @ android.widget.linearlayout.onmeasure(linearlayout.java:574)         @ android.view.view.measure(view.java:15172)         @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:4814)         @ android.widget.linearlayout.measurechildbeforelayout(linearlayout.java:1390)         @ android.widget.linearlayout.measurevertical(linearlayout.java:681)         @ android.widget.linearlayout.onmeasure(linearlayout.java:574)         @ android.view.view.measure(view.java:15172)         @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:4814)         @ android.widget.linearlayout.measurechildbeforelayout(linearlayout.java:1390)         @ android.widget.linearlayout.measurevertical(linearlayout.java:681)         @ android.widget.linearlayout.onmeasure(linearlayout.java:574)         @ android.view.view.measure(view.java:15172)         @ android.widget.scrollview.measurechildwithmargins(scrollview.java:1196)         @ android.widget.framelayout.onmeasure(framelayout.java:310)         @ android.widget.scrollview.onmeasure(scrollview.java:318)         @ android.view.view.measure(view.java:15172)         @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:4814)         @ android.widget.linearlayout.measurechildbeforelayout(linearlayout.java:1390)         @ android.widget.linearlayout.measurehorizontal(linearlayout.java:1038)         @ android.widget.linearlayout.onmeasure(linearlayout.java:576)         @ android.view.view.measure(view.java:15172)         @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:4814)         @ android.widget.framelayout.onmeasure(framelayout.java:310)         @ android.view.view.measure(view.java:15172)         @ android.widget.linearlayout.measurevertical(linearlayout.java:833)         @ android.widget.linearlayout.onmeasure(linearlayout.java:574)         @ android.view.view.measure(view.java:15172)         @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:4814)         @ android.widget.framelayout.onmeasure(framelayout.java:310)         @ com.android.internal.policy.impl.phonewindow$decorview.onmeasure(phonewindow.java:2148)         @ android.view.view.measure(view.java:15172)         @ android.view.viewrootimpl.performmeasure(viewrootimpl.java:1848)         @ android.view.viewrootimpl.measurehierarchy(viewrootimpl.java:1100)         @ android.view.viewrootimpl.performtraversals(viewrootimpl.java:1273)         @ android.view.viewrootimpl.dotraversal(viewrootimpl.java:998)         @ android.view.viewrootimpl$traversalrunnable.run(viewrootimpl.java:4212)         @ android.view.choreographer$callbackrecord.run(choreographer.java:725)         @ android.view.choreographer.docallbacks(choreographer.java:555)         @ android.view.choreographer.doframe(choreographer.java:525)         @ android.view.choreographer$framedisplayeventreceiver.run(choreographer.java:711)         @ android.os.handler.handlecallback(handler.java:615)         @ android.os.handler.dispatchmessage(handler.java:92)         @ android.os.looper.loop(looper.java:137)         @ android.app.activitythread.main(activitythread.java:4745)         @ java.lang.reflect.method.invokenative(native method)         @ java.lang.reflect.method.invoke(method.java:511)         @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:786)         @ com.android.internal.os.zygoteinit.main(zygoteinit.java:553)         @ dalvik.system. 

i don't know can do... test, took string of itempost.getconteudo() , placed, manually, in html.fromhtml(), this:

conteudo.settext(html.fromhtml("<p>recentemente saiu uma lista com os possíveis candidatos para interpretar o novo <strong>homem-aranha</strong> no novo <strong>universo cinematográfico da marvel</strong>. saiba agora qual deles merece o papel e quem realmente devia encarar o <strong>homem-aranha</strong>!</p>**... placed html code here**")); 

then, ran again, , worked well. me, means html code right, going wrong, maybe, string itempost.getconteudo(). someone, please, can me understand what's going wrong!?

i found problem! there bug span on jellybean, when setting text on textview. happens when have wrong line-wrap in non-spanned part of text. so, created simple method solve it:

private string ajusthtml (string s) { // make line-wrap space before html tags s = s.replace("<", " <"); // remove duplicated space s = s.replace("  ", " "); return s; } 

and use this: itempost.setconteudo(ajusthtml(feedobj.getstring("content")));

everthing worked fine! :)


Comments

Popular posts from this blog

asp.net mvc - SSO between MVCForum and Umbraco7 -

Python Tkinter keyboard using bind -

ubuntu - Selenium Node Not Connecting to Hub, Not Opening Port -