java - Connect and download data in Android -
java - Connect and download data in Android -
i have problem net connection , download data; can help me understand mistake? post code:
public class mainactivity extends activity implements onclicklistener{ private static final string debug_tag = null; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); final string debug_tag = "httpexample"; //assegno le view button bottone = (button) findviewbyid(r.id.button); textview insert = (textview) findviewbyid(r.id.inserisci); bottone.setonclicklistener(this); } @override public void onclick(view v) { textview info = (textview)findviewbyid(r.id.content); edittext edit = (edittext)findviewbyid(r.id.edit); //assegna alla stringa sito il testo preso dall'edittext string sito = edit.gettext().tostring(); seek { //setta nella textview 500 caratteri del contenuto della web page data.settext(downloadurl(sito)); } grab (ioexception e) { // todo auto-generated grab block e.printstacktrace(); } } /* dato united nations url, stabilisce united nations httpurlconnection e restituisce il contenuto della web page come united nations inputstream, che è ritornato come stringa.*/ public string downloadurl(string myurl) throws ioexception { inputstream = null; //mostra solo primi 500 caratteri del contenuto della web page. int len = 500; seek { url url = new url(myurl); httpurlconnection conn = (httpurlconnection) url.openconnection(); conn.setreadtimeout(10000 /* millisecondi */); conn.setconnecttimeout(15000 /* millisecondi */); conn.setrequestmethod("get"); conn.setdoinput(true); conn.setdooutput(true); // inizializza la connessione conn.connect(); int response = conn.getresponsecode(); log.d(debug_tag, "the response is: " + response); = conn.getinputstream(); // converte l'inputstream in una stringa string contentasstring = readit(is, len); homecoming contentasstring; // si assicura che l'inputstream sia chiuso dopo che l'app ha finito di usarlo } { if (is != null) { is.close(); } } } // legge united nations inputstream e lo converte in una stringa public string readit(inputstream stream, int len) throws ioexception, unsupportedencodingexception { reader reader = null; reader = new inputstreamreader(stream, "utf-8"); char[] buffer = new char[len]; reader.read(buffer); homecoming new string(buffer); } }
the file xml is:
<tablelayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="5dp"> <tablerow android:layout_width="match_parent" android:layout_height="match_parent"> <textview android:id="@+id/inserisci" android:text="@string/inserisci" android:layout_width="wrap_content"/> <edittext android:id="@+id/edit" android:layout_width="match_parent"/> </tablerow> <tablerow android:layout_width="match_parent" android:layout_height="match_parent"> <button android:id="@+id/button" android:text="@string/button" android:layout_width="wrap_content" android:layout_marginleft="80dp" android:layout_gravity="center"/> </tablerow> <tablerow android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center"> <textview android:text="" android:id="@+id/content"/> </tablerow> </tablelayout>
i solved problem @robmeeuwisse. right code:
public class mainactivity extends activity { private static final string debug_tag = "httpexample"; private edittext urltext; private textview textview; private button bt; private textview advice; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); urltext = (edittext)findviewbyid(r.id.myurl); textview = (textview)findviewbyid(r.id.mytext); advice = (textview)findviewbyid(r.id.advice); bt = (button)findviewbyid(r.id.button); bt.setonclicklistener(new onclicklistener(){ @override public void onclick(view v) { myclickhandler(v); } }); } //quando l'utente clicca sul bottone,chiama asyctask; prima di decodificare l'url si assicura che ci sia la connessione alla rete public void myclickhandler(view view){ //prende l'url dall'edittext string stringurl = urltext.gettext().tostring(); connectivitymanager connmgr = (connectivitymanager) getsystemservice(context.connectivity_service); networkinfo net = connmgr.getactivenetworkinfo(); if(net != null && net.isconnected()){ new downloadwebpagetask().execute(stringurl); }else{ textview.settext("no network connection available."); } } /*usa asynctask per creare united nations task fuori dal thread principale della ui. questo task prende una stringa url e la usa per creare united nations httpurlconnection. una volta che la connessione è stata creata, l'asynctask scarica il contenuto della webpage come united nations inputstream e lo converte in string con è il metodo onpostexecute. */ private class downloadwebpagetask extends asynctask<string, void, string> { protected string doinbackground(string... urls){ try{ homecoming downloadurl(urls[0]); }catch (ioexception e){ homecoming "impossibile trovare la pagina web. l'url inserito potrebbe essere invalido."; } } protected void onpostexecute(string result){ textview.settext(result); } } private string downloadurl(string myurl) throws ioexception { inputstream = null; // visualizza primi 500 caratteri del contenuto della web page int len = 500; seek { url url = new url(myurl); httpurlconnection conn = (httpurlconnection) url.openconnection(); conn.setreadtimeout(10000 /* milliseconds */); conn.setconnecttimeout(15000 /* milliseconds */); conn.setrequestmethod("get"); conn.setdoinput(true); // inizializza la connessione conn.connect(); int response = conn.getresponsecode(); log.d(debug_tag, "the response is: " + response); = conn.getinputstream(); // converte l'inputstream in una stringa string contentasstring = readit(is, len); homecoming contentasstring; // si assicura di chiudere l'inputstream una volta che l'app ha smesso di usarlo } { if (is != null) { is.close(); } } }
// legge l'inputstream e lo converte in una stringa. public string readit(inputstream stream, int len) throws ioexception, unsupportedencodingexception { reader reader = null; reader = new inputstreamreader(stream, "utf-8"); char[] buffer = new char[len]; reader.read(buffer); homecoming new string(buffer); } }
java android download android-xml connect
Comments
Post a Comment