Autore Topic: utilizzo classe Handler.  (Letto 402 volte)

Offline giupardeb

  • Utente junior
  • **
  • Post: 115
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Glaxy Note 4
utilizzo classe Handler.
« il: 03 Agosto 2015, 16:17:26 CEST »
0
Buon pomeriggio ragazzi, vado al dunque. Devo cercare di ottonere attraverso le coordinate gps il nome della località, e poi inserirlo all'interno di un arrayList. Ecco il codice:

Codice: [Seleziona]
private void getLocation() {

        //   Location location = gps.getLocation(LocationManager.GPS_PROVIDER);

        //    if (location != null) {
        double latitude = 37.50788;//location.getLatitude();
        double longitude = 15.08303; //location.getLongitude();
        LocationAddress locationAddress = new LocationAddress();
        locationAddress.getAddressFromLocation(latitude, longitude,mContext, new GeocoderHandler());
        // } else showGpsSettingsAlert();
    }
Codice: [Seleziona]
    private class GeocoderHandler extends Handler {
        @Override
        public void handleMessage(Message message) {
            String locationAddress;
            switch (message.what) {
                case 1:
                    Bundle bundle = message.getData();
                    locationAddress = bundle.getString("address");
                    break;
                default:
                    locationAddress = null;
            }
            locality = locationAddress;
            LocalitaArray.add(locality);

            db.open();
            db.insertPhoto(pictureFile.getAbsolutePath(), copyActualTag, actualStar, locality);
            db.close();
        }
    }

il metodo getLocation() viene richiamato dopo che un dialog viene chiuso.
Il problema è che quando richiamo il database per estrarre i dati inseriti, mi da errore, perché il mio arrayList è vuoto. Ma come fa ad essere vuoto? Spero di essere stato chiaro e che qualcuno risponda. GRazie mille!

Offline tonno16

  • Utente storico
  • *****
  • Post: 1228
  • Respect: +59
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:utilizzo classe Handler.
« Risposta #1 il: 03 Agosto 2015, 16:34:29 CEST »
0
non usi mai locality quindi presumo non riempì mai la tua array

Offline giupardeb

  • Utente junior
  • **
  • Post: 115
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Glaxy Note 4
Re:utilizzo classe Handler.
« Risposta #2 il: 03 Agosto 2015, 16:41:11 CEST »
0
non usi mai locality quindi presumo non riempì mai la tua array
Locality lo uso in un'altra parte di codice..sia locality che l arraylist sono variabili globali. Non vedo il motivo, anche nel momento in cui non usassi locality, per il quale l'array debba essere vuoto.

Post unito: 04 Agosto 2015, 10:15:31 CEST
[UPDATE1] Ho notato che l'applicazione si blocca ancora prima che il thread che determina la località venga terminato. Come posso risolvere ciò?
« Ultima modifica: 04 Agosto 2015, 10:15:31 CEST da giupardeb, Reason: Merged DoublePost »