Salve amici sto avendo dei problemi nella realizzazione di un'app e volevo chiedervi qualche consiglio. Praticamente io vado a fare il parsing da un sito utilizzando la libreria jsoup. Premesso che il parsing l'ho provato in eclipse creando un progetto java, ed è funzionante, ho deciso di implementarlo nel progetto android utilizzando sempre eclipse; mi ricavo da questo parsing una stringa e infine passo questa stringa alla mia textview. Il tutto è stato fatto utilizzando un thread.
Il problema è che l'applicazione si avvia, non da errori, sembra connettersi a internet e nella console mi appaiono questi messaggi:
07-18 01:56:14.791: D/dalvikvm(360): GC_FOR_MALLOC freed 1838 objects / 362160 bytes in 43ms
07-18 01:56:15.232: D/dalvikvm(360): GC_FOR_MALLOC freed 3509 objects / 197152 bytes in 60ms
07-18 01:56:15.621: D/dalvikvm(360): GC_FOR_MALLOC freed 8706 objects / 365256 bytes in 51ms
07-18 01:57:11.773: D/dalvikvm(360): GC_FOR_MALLOC freed 5655 objects / 287024 bytes in 322ms
07-18 01:57:11.773: I/dalvikvm-heap(360): Grow heap (frag case) to 4.241MB for 131088-byte allocation
07-18 01:57:12.022: D/dalvikvm(360): GC_FOR_MALLOC freed 145 objects / 6944 bytes in 247ms
ma nell'attività in cui midovrebbe comparire la stringa, continua ad essere vuota. Potete darmi una mano a capire quale sia il problema perfavore? grazie mille
il codice è il seguente:
public class MainActivity extends Activity {
String url="[url=http://www.gazzettabenevento.it/Sito2009/dettagliocomunicato.php?Id=26226&vcercaCom=";]Gazzetta di Benevento[/url]
ProgressDialog mProgressDialog;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Execute Title AsyncTask
new Mese().execute();
}
// nome del mese Asyntask
private class Mese extends AsyncTask<Void, Void, Void>
{
String mese;
Document doc;
@Override
protected void onPreExecute() {
super.onPreExecute();
mProgressDialog = new ProgressDialog(MainActivity.this);
mProgressDialog.setTitle("Recovery data");
mProgressDialog.setMessage("Loading...");
mProgressDialog.setIndeterminate(false);
mProgressDialog.show();
}
@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
try
{
//connettiti al sito
// sfrutta la codifica ISO-8859-1 in modo tale da poter fare l'encode in maniera corretta.
doc = Jsoup.parse(new java.net.URL(url).openStream(), "ISO-8859-1", url);
Element tbody = doc.select("table[width=809]").first().child(0);
// mi prendo tutti i figli di tbody
Elements rows = tbody.children();
// cancello le prime 4 righe corrispondenti a <tr>
Element riga = rows.get(4);
// cambiando i valori di get, riesco a prendermi tutti i titoli
String mese = riga.select("div span strong").get(0).text();
}
catch (Exception e)
{
// gestione dell'eccezione
// ad esempio mostrare messaggio di errore o altro (qui nel logcat)
Log.e("ESEMPIO", "ERRORE NEL PARSING");
}
return null;
}
@Override
protected void onPostExecute(Void result) {
// assegno all'oggetto textview il suo riferimento
TextView tvMese = (TextView)findViewById(R.id.mese);
tvMese.setText(mese);
mProgressDialog.dismiss();
}
}
}