Ho modificato il codice per l'asynctask e renderla un po più dinamica:
l'applicazione parte ma poi crasha. perchè???codice:public class ClientServerHttpActivity extends Activity { public String barcode; public String stringaFinale; public TextView textviewDatiRicevuti; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_client_server_http); EditText etbarcode = (EditText) findViewById(R.id.barcode); barcode=etbarcode.getText().toString(); textviewDatiRicevuti = (TextView) findViewById(R.id.datiRicevuti); Button buttonInviaDati = (Button) findViewById(R.id.buttonInviaDati); buttonInviaDati.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { //invio richiesta new BackgroundAsyncTask().execute(); //textviewDatiRicevuti.setText(inviaDati(barcode)); } }); } public class BackgroundAsyncTask extends AsyncTask<Void, Void, Void> { private ProgressDialog pDialog; @Override protected Void doInBackground(Void... params) { inviaDati(barcode); return null; } @Override protected void onPreExecute() { pDialog = ProgressDialog.show(ClientServerHttpActivity.this,"Prego attendere...", "Caricamento...", true); } @Override protected void onPostExecute(Void result) { pDialog.dismiss(); textviewDatiRicevuti.setText(stringaFinale); } } public String inviaDati(String barcode){ String result = ""; String stringaFinale = ""; ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); nameValuePairs.add(new BasicNameValuePair("bc",barcode)); InputStream is = null; //http post try{ HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("http://10.0.2.2/supermercato/testp.php"); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse response = httpclient.execute(httppost); HttpEntity entity = response.getEntity(); is = entity.getContent(); }catch(Exception e){ Log.e("TEST", "Errore nella connessione http "+e.toString()); } if(is != null){ //converto la risposta in stringa try{ BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } is.close(); result=sb.toString(); }catch(Exception e){ Log.e("TEST", "Errore nel convertire il risultato "+e.toString()); } //parsing dei dati arrivati in formato json try{ JSONArray jArray = new JSONArray(result); for(int i=0;i<jArray.length();i++){ JSONObject json_data = jArray.getJSONObject(i); Log.i("TEST","prezzo: "+json_data.getDouble("prezzo")+ ", categoria: "+json_data.getString("categoria")+ ", descrizione: "+json_data.getString("descrizione") ); stringaFinale = "Prezzo: euro " + json_data.getDouble("prezzo") + "\nCategoria prodotto: " + json_data.getString("categoria") + "\nNome prodotto: " + json_data.getString("descrizione") + "\n\n"; } } catch(JSONException e){ Toast.makeText(getBaseContext(), "Prodotto non trovato!", Toast.LENGTH_LONG).show(); } } else{//is è null e non ho avuto risposta } return stringaFinale; } }
sicuramente ci saranno errori di programmazione dovuti alla mia inesperienza! aiutatemiiiiiiiiiiiii![]()

LinkBack URL
About LinkBacks
Rispondi quotando

forse è anche la disperazione ad esprimermi con un certo tono.
