Autore Topic: Variabili scomparse.  (Letto 196 volte)

Offline censore

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Wiko
  • Sistema operativo:
    Windows 10
Variabili scomparse.
« il: 06 Settembre 2016, 22:52:45 CEST »
0
Salve. Sono un principiante. Però, vorrei proprio sapere se, una variabile generale (non di metodo) può perdere il proprio valore e diventare "null" a suo piacimento?
Mi spiego meglio: nella mia applicazione, conservo il percorso di un file immagine in una variabile generale. Circa una volta su 5, ottengo un errore del tipo Nullpointer (la variabile ha valore "null").
Questo a parità di condizioni, cioè ripetendo sempre gli stessi passi.
Vi prego aiutatemi.
Stessa cosa mi capita caricando un file immagine che ho salvato. Circa una volta su 5 ottengo un errore input file inesistente (ma in realtà c'è).
AIUTATEMI!

Offline tonno16

  • Utente storico
  • *****
  • Post: 1169
  • Respect: +56
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Variabili scomparse.
« Risposta #1 il: 07 Settembre 2016, 16:27:41 CEST »
0
Sbaglierai qualcosa.

Offline censore

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Wiko
  • Sistema operativo:
    Windows 10
Re:Variabili scomparse.
« Risposta #2 il: 07 Settembre 2016, 16:53:30 CEST »
0
Spero qualcuno riesca a trovare l'errore allora.
Ho una variabile String percorso che un secondo prima contiene il percorso di un file ed un attimo dopo diventa "null". Perchè? il suo valore viene dichiaratouna sola volta:

Codice (XML): [Seleziona]
public class FragmentTab2 extends Fragment {
    Activity context;
    private SharedPreference sharedPreference = new SharedPreference();

    private static final int CAMERA_REQUEST = 3813;
    Button camera;
    ImageView foto;



    String percorso;

ed assegnato una sola volta:

Codice (XML): [Seleziona]
    private File createImageFile() throws IOException {
        // Create an image file name
        String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
        sharedPreference.save(context,"nomeFile",timeStamp);

        File storageDir = new File(Environment.getExternalStoragePublicDirectory(
                Environment.DIRECTORY_DCIM) + File.separator + "BottiglieDiVino");
        boolean success;
        if (!storageDir.exists()) {
            success = storageDir.mkdir();
            if (success) {
                // Do something on success
                Log.v("Crea /BottiglieDiVino", "Ho Creato nuova directory");
            } else {
                // Do something else on failure
                Log.v("Crea /BottiglieDiVino", "ERRORE nel creare nuova directory");
            }
        }

        File image = new File(storageDir, timeStamp + ".jpg");
        // Save a file: path for use with ACTION_VIEW intents
        percorso = image.getAbsolutePath();
        sharedPreference.save(context,"percorso", percorso);
        Log.v("percorso", percorso);
        return image;
    }

Se successivamente vado solo a leggerne il valore, come fa a cambiare e diventare null?
Premetto, che questo non accade sempre. Trattandosi del percorso di un file dove salvo una foto presa dalla camera dello smartphone, ciò accade solo con orientamento landscape della foto.