CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: carotix con ben 2 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 9 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 34 Thanks ricevuti nell'ultimo mese

Pagina 4 di 4 primaprima ... 234
Visualizzazione dei risultati da 31 a 39 su 39
Discussione:

Comunicazione client-server

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #31
    Baby Droid


    Registrato dal
    Nov 2012
    Località
    Valderice
    Messaggi
    24

    Ringraziamenti
    5
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Ho modificato il codice per l'asynctask e renderla un po più dinamica:
    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;
        }
    }
    l'applicazione parte ma poi crasha. perchè???
    sicuramente ci saranno errori di programmazione dovuti alla mia inesperienza! aiutatemiiiiiiiiiiiii

  2.  
  3. #32
    Senior Droid L'avatar di frank17next


    Registrato dal
    Jan 2010
    Località
    Campobasso
    Messaggi
    739
    Smartphone
    GNexus, Galaxy Note, GT 10.1

    Ringraziamenti
    16
    Ringraziato 143 volte in 102 Posts
    Predefinito

    Quote Originariamente inviato da xyzi Visualizza il messaggio
    Ho modificato il codice per l'asynctask e renderla un po più dinamica:
    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;
        }
    }
    l'applicazione parte ma poi crasha. perchè???
    sicuramente ci saranno errori di programmazione dovuti alla mia inesperienza! aiutatemiiiiiiiiiiiii

    Comunque, permettimi una micro-considerazione, senza rancore e che abbia il sentore di un consiglio... il tipo di supporto che stai cercando è troppo ardito per cercarlo in un forum, in quanto l'hai cadenzato con le tempistiche di una 'chat' (non puoi dire che 'non ti caca nessuno', perchè il forum, per l'appunto, non essendo una chat, non fornisce risposte in tempo reale)..
    Inoltre è molto difficile seguirti poichè stai componendo questo progetto con troppe googlate e poca analisi.
    Io, dal mio modesto parare di programmatore, ti consiglio assolutamente di non saltare così brutalmente la parte di analisi per buttarti direttamente su code and fix, altrimenti ti stressi e non hai il controllo di quello che stai facendo. Devi assolutamente prima comprendere la classe/ le classi che vuoi utilizzare (che siano di terze parti o del s.o. android)
    prima di chiedere supporto per il primissimo errore, altrimenti davvero sembra che stai richiedendo informazioni da manuale in un forum.

    In merito all'errore, dovresti almeno postare l'output del logcat e evidenziare la porzione di codice in cui viene eseguita la riga indicata nell'exception del logcat.
    Ti ringrazio.
    Nexus 6 - 5.0.1 Stock
    Nexus 5 - 5.0.1 Stock + Root
    Galaxy Note 3 GT-N9005 - 4.4.4 Stock + Root
    Galaxy Tab 10.1 Slim P7500 - [JB] CyanogenMod 10 4.1.2 Pershoot (Nightly 20121013)
    ------------------------------------------------------------------------
    https://sites.google.com/site/frank17next/

  4. #33
    Androidiano L'avatar di IlSocio


    Registrato dal
    Jul 2012
    Località
    Torino
    Messaggi
    62

    Ringraziamenti
    6
    Ringraziato 19 volte in 15 Posts
    Predefinito

    Inizia a guardare il logcat per farti una idea di dove crasha...
    se quello non ti aiuta, allora puoi sempre optare per "il metodo chirurgico" ™
    ovvero: rimuovi codice fino a che non crasha piu', poi aggiungi poco alla volta sino ad isolare/individuare il blocco di istruzioni che provoca il crash...

  5. #34
    Senior Droid L'avatar di frank17next


    Registrato dal
    Jan 2010
    Località
    Campobasso
    Messaggi
    739
    Smartphone
    GNexus, Galaxy Note, GT 10.1

    Ringraziamenti
    16
    Ringraziato 143 volte in 102 Posts
    Predefinito

    IlSocio, scusa non mi volevo sovrapporre nella risposta, a giudicare dal timestamp abbiamo risposto quasi contemporaneamente

    Inviato dal mio Galaxy Nexus con Tapatalk 2
    Nexus 6 - 5.0.1 Stock
    Nexus 5 - 5.0.1 Stock + Root
    Galaxy Note 3 GT-N9005 - 4.4.4 Stock + Root
    Galaxy Tab 10.1 Slim P7500 - [JB] CyanogenMod 10 4.1.2 Pershoot (Nightly 20121013)
    ------------------------------------------------------------------------
    https://sites.google.com/site/frank17next/

  6. #35
    Androidiano L'avatar di IlSocio


    Registrato dal
    Jul 2012
    Località
    Torino
    Messaggi
    62

    Ringraziamenti
    6
    Ringraziato 19 volte in 15 Posts
    Predefinito

    Figurati... nessun problema!

  7. #36
    Baby Droid


    Registrato dal
    Nov 2012
    Località
    Valderice
    Messaggi
    24

    Ringraziamenti
    5
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Quote Originariamente inviato da frank17next Visualizza il messaggio
    Comunque, permettimi una micro-considerazione, senza rancore e che abbia il sentore di un consiglio... il tipo di supporto che stai cercando è troppo ardito per cercarlo in un forum, in quanto l'hai cadenzato con le tempistiche di una 'chat' (non puoi dire che 'non ti caca nessuno', perchè il forum, per l'appunto, non essendo una chat, non fornisce risposte in tempo reale)..
    Inoltre è molto difficile seguirti poichè stai componendo questo progetto con troppe googlate e poca analisi.
    Io, dal mio modesto parare di programmatore, ti consiglio assolutamente di non saltare così brutalmente la parte di analisi per buttarti direttamente su code and fix, altrimenti ti stressi e non hai il controllo di quello che stai facendo. Devi assolutamente prima comprendere la classe/ le classi che vuoi utilizzare (che siano di terze parti o del s.o. android)
    prima di chiedere supporto per il primissimo errore, altrimenti davvero sembra che stai richiedendo informazioni da manuale in un forum.

    In merito all'errore, dovresti almeno postare l'output del logcat e evidenziare la porzione di codice in cui viene eseguita la riga indicata nell'exception del logcat.
    Ti ringrazio.
    Hai ragione e mi scuso per il mio comportamento!
    Il problema è che mi sono avvicinato da poco alla programmazione android e sul libro dove ho studiato non c'è niente sulla parte di comunicazione con un server, infatti, vado avanti approfondendo su internet i vostri consigli.
    magari sbaglio soffermandomi solamente su qualche codice di esempio che poi all'atto pratico non riesco ad eseguire prefettamente o adattarlo a cosa serve a me. il problema è che mi è stato assegnato questo progetto all'università e la scadenza si sta avvicinando! forse è anche la disperazione ad esprimermi con un certo tono.
    cmq ritornando all'activity, questa parte, inserisco il codice a barre nell'edittext, premo il bottone per l'invio al server e parte il progressdialog che dopo un pò termina e l'app si blocca! questo è il problema. non so se a livello di codice già si può vedere qualche errore

  8. #37
    Senior Droid L'avatar di frank17next


    Registrato dal
    Jan 2010
    Località
    Campobasso
    Messaggi
    739
    Smartphone
    GNexus, Galaxy Note, GT 10.1

    Ringraziamenti
    16
    Ringraziato 143 volte in 102 Posts
    Predefinito

    Quote Originariamente inviato da xyzi Visualizza il messaggio
    Hai ragione e mi scuso per il mio comportamento!
    Il problema è che mi sono avvicinato da poco alla programmazione android e sul libro dove ho studiato non c'è niente sulla parte di comunicazione con un server, infatti, vado avanti approfondendo su internet i vostri consigli.
    magari sbaglio soffermandomi solamente su qualche codice di esempio che poi all'atto pratico non riesco ad eseguire prefettamente o adattarlo a cosa serve a me. il problema è che mi è stato assegnato questo progetto all'università e la scadenza si sta avvicinando! forse è anche la disperazione ad esprimermi con un certo tono.
    cmq ritornando all'activity, questa parte, inserisco il codice a barre nell'edittext, premo il bottone per l'invio al server e parte il progressdialog che dopo un pò termina e l'app si blocca! questo è il problema. non so se a livello di codice già si può vedere qualche errore

    Tranquillo, te lo dicevo perchè a volte pensare in fretta e operare in fretta non porta a niente di buono, anche se il contesto di consegnare nel breve periodo purtroppo non lascia altra scelta
    ad ogni modo, suppongo tu stia usando eclipse, quindi, tenendo il device collegato con il cavo usb, dovresti tenere aperta la finestra di output del logcat (in eclipse) mentre produci l'errore sulla app. a quel punto potra vedere l'errore/exception (in rosso / arancione se error o warning) . prova a postare quell'errore, in cui è indicata anche la classe e l'esatta riga di codice in cui c'è questo fault. Così possiamo capire cosa lo provoca.
    Grazie
    Nexus 6 - 5.0.1 Stock
    Nexus 5 - 5.0.1 Stock + Root
    Galaxy Note 3 GT-N9005 - 4.4.4 Stock + Root
    Galaxy Tab 10.1 Slim P7500 - [JB] CyanogenMod 10 4.1.2 Pershoot (Nightly 20121013)
    ------------------------------------------------------------------------
    https://sites.google.com/site/frank17next/

  9. #38
    Baby Droid


    Registrato dal
    Nov 2012
    Località
    Valderice
    Messaggi
    24

    Ringraziamenti
    5
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Quote Originariamente inviato da frank17next Visualizza il messaggio
    Tranquillo, te lo dicevo perchè a volte pensare in fretta e operare in fretta non porta a niente di buono, anche se il contesto di consegnare nel breve periodo purtroppo non lascia altra scelta
    ad ogni modo, suppongo tu stia usando eclipse, quindi, tenendo il device collegato con il cavo usb, dovresti tenere aperta la finestra di output del logcat (in eclipse) mentre produci l'errore sulla app. a quel punto potra vedere l'errore/exception (in rosso / arancione se error o warning) . prova a postare quell'errore, in cui è indicata anche la classe e l'esatta riga di codice in cui c'è questo fault. Così possiamo capire cosa lo provoca.
    Grazie
    so benissimo che la fretta è cattiva consigliera. io utilizzo eclipse e per testare uso esclusivamente l'emulatore, cmq rivedendo il codice più e più volte e cambiando qualcosina per ora non da problemi e il risultato in output è corretto!
    Invece (scusatemi per l'off topic) sapresti indicarmi qualche buon libro per poter approfondire di più le conoscenze sulla programmazione in android?

  10. #39
    Senior Droid L'avatar di frank17next


    Registrato dal
    Jan 2010
    Località
    Campobasso
    Messaggi
    739
    Smartphone
    GNexus, Galaxy Note, GT 10.1

    Ringraziamenti
    16
    Ringraziato 143 volte in 102 Posts
    Predefinito

    Quote Originariamente inviato da xyzi Visualizza il messaggio
    so benissimo che la fretta è cattiva consigliera. io utilizzo eclipse e per testare uso esclusivamente l'emulatore, cmq rivedendo il codice più e più volte e cambiando qualcosina per ora non da problemi e il risultato in output è corretto!
    Invece (scusatemi per l'off topic) sapresti indicarmi qualche buon libro per poter approfondire di più le conoscenze sulla programmazione in android?
    Per Java sicuramente: Deitel & Deitel (java: i fondamenti e java: tecniche avanzate di programmazione). Per android qualsiasi guida va bene, io non ne ho usata una in particolare ma soltanto stackoverflow.com
    Nexus 6 - 5.0.1 Stock
    Nexus 5 - 5.0.1 Stock + Root
    Galaxy Note 3 GT-N9005 - 4.4.4 Stock + Root
    Galaxy Tab 10.1 Slim P7500 - [JB] CyanogenMod 10 4.1.2 Pershoot (Nightly 20121013)
    ------------------------------------------------------------------------
    https://sites.google.com/site/frank17next/

Pagina 4 di 4 primaprima ... 234

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy