Autore Topic: Problema metodo loadData WebView  (Letto 703 volte)

Offline rocki

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy W GT-I8150
  • Sistema operativo:
    Ubuntu 11.10
Problema metodo loadData WebView
« il: 26 Dicembre 2011, 08:17:40 CET »
0
Ciao a tutti,
espongo subito il problema, sto cercando di fare un app per un azienda, che deve andare a leggere i feed RSS,ho pensato di mostrarli a video con una WebView, anche perchè alcuni elementi degli RSS sono in HTML, però, quando vado ad inserire il contenuto di alcuni elementi dentro la stringa che dovrebbe contenere il codice HTML, mi da un'errore la WebView, che vi allego. Di seguito il listato dell'activity:
Codice (Java): [Seleziona]
package com.mweb.saperesapori;

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;

import java.io.IOException;
import java.io.InputStreamReader;
import java.io.File;
import java.net.URL;
import java.net.URLConnection;
import java.util.Set;
import java.util.Iterator;

import de.nava.informa.core.ChannelIF;
import de.nava.informa.core.ParseException;
import de.nava.informa.impl.basic.ChannelBuilder;
import de.nava.informa.parsers.FeedParser;
import de.nava.informa.core.ItemIF;





public class SaperesaporiActivity<E> extends Activity {
    /** Called when the activity is first created. */
    private WebView wv;
    String data;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        wv = (WebView) findViewById(R.id.webView);
        try {
                URL url = new URL("http://www.saperesapori.it/DesktopModules/DnnForge%20-%20NewsArticles/Rss.aspx?TabID=306&ModuleID=762&MaxCount=25");
                URLConnection uc = url.openConnection();
                InputStreamReader input = new InputStreamReader(uc.getInputStream());
                ChannelIF channel = FeedParser.parse(new ChannelBuilder(), input);
                Set<ItemIF> items = channel.getItems();
                Iterator<ItemIF> i = items.iterator();
                ItemIF item;
                //header
                data = "<html>" +
                                "<body bgcolor='#B5A789'>" +
                                "<style>" +
                                "a{text-decoration: none;color:#C35007;}" +
                                "h1{color:#C35007;}" +
                                "</style>" +
                                "<h1><a href='"+ channel.getSite().toString() + "'>" + channel.getTitle() + "</a></h1><br>";
               
                while(i.hasNext()){
                        item = i.next();                       
                        data += item.getDescription().toString().replaceAll(Character.toString('"'), "'")+"<br>";
                                       
                        //data += "Ciao, Mondo!<br>";
                        //i.next();
                        //System.out.println(i.next().getTitle().toString());
                }
                //end
                data += "</body>" +
                                "</html>";  
                System.out.println(data);
               
                wv.loadData(data, "text/html", null);
                } catch (IOException e) {
                        e.printStackTrace();
                } catch (ParseException e) {
                        e.printStackTrace();
                }
               
               
    }
}

Offline rocki

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy W GT-I8150
  • Sistema operativo:
    Ubuntu 11.10
Re:Problema metodo loadData WebView
« Risposta #1 il: 26 Dicembre 2011, 09:35:39 CET »
0
Ho risolto! Il problema era che gli passavo la stringa HTML, senza codificarla come se fosse un URL.

Offline djdedo

  • Utente normale
  • ***
  • Post: 209
  • Respect: +15
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S2
Re:Problema metodo loadData WebView
« Risposta #2 il: 11 Maggio 2012, 17:59:35 CEST »
0
Ciao potresti essere un pò più chiaro nel spiegare la soluzione? Ho il tuo stesso problema ma non ho capito come hai risolto. Grazie

Offline rocki

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy W GT-I8150
  • Sistema operativo:
    Ubuntu 11.10
Re:Problema metodo loadData WebView
« Risposta #3 il: 11 Maggio 2012, 21:15:54 CEST »
0
Scusami, ma questo metodo l'ho abbandonato per passare alle ListView, quindi purtroppo non mi ricordo come ho fatto, ma riguardando la risposta credo che avessi codificato la stringa contenente l'HTML come URL, tramite il metodo URLEncode. Nel caso in cui non funzioni proverò ad andare a cercare il vecchio progetto che spero di avere salvato.  :-)

Offline djdedo

  • Utente normale
  • ***
  • Post: 209
  • Respect: +15
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S2
Re:Problema metodo loadData WebView
« Risposta #4 il: 11 Maggio 2012, 21:46:01 CEST »
0
Ciao ho fatto qualche ricerca ed effettivamente ho risolto con URLEncoder. Grazie