2011-09-24 12 views
9

Ho una bitmap che deve essere mostrata in una nuova attività, quindi la applico e nell'attività aperta provo a caricarla ma ottengo una nullPointerException. Qui i salvare l'immagine:Android, salvataggio e caricamento di una bitmap nella cache da diverse attività

File cacheDir = getBaseContext().getCacheDir(); 
File f = new File(cacheDir, "pic"); 

try { 
    FileOutputStream out = new FileOutputStream(
      f); 
    pic.compress(
      Bitmap.CompressFormat.JPEG, 
      100, out); 
    out.flush(); 
    out.close(); 

} catch (FileNotFoundException e) { 
    e.printStackTrace(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

Intent intent = new Intent(
     AndroidActivity.this, 
     OpenPictureActivity.class); 
startActivity(intent); 

e poi nella nuova attività provo ad aprirlo:

public void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 

    File cacheDir = getBaseContext().getCacheDir(); 
    File f = new File(cacheDir, "pic");  
    FileInputStream fis = null; 
    try { 
     fis = new FileInputStream(f); 
    } catch (FileNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    Bitmap bitmap = BitmapFactory.decodeStream(fis); 

    ImageView viewBitmap = (ImageView) findViewById(R.id.icon2); 
    viewBitmap.setImageBitmap(bitmap); 
    setContentView(R.layout.open_pic_layout); 
+2

È necessario indicare quale linea genera NullPointerException. –

risposta

4

Basta controllare il tuo codice:

ImageView viewBitmap = (ImageView) findViewById(R.id.icon2); 
viewBitmap.setImageBitmap(bitmap); 
setContentView(R.layout.open_pic_layout); 

Hai scritto findViewById() prima di impostare la vista del contenuto. È sbagliato.

public void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 
    setContentView(R.layout.open_pic_layout); 

    // do your operations here 
    } 
+0

omg, ho bisogno di una pausa), ora funziona bene, grazie per aver indicato che out =) – user924941

+0

Dovresti aver guardato il numero della riga di errore nell'output di logcat. Ricorda sempre che non dimenticare mai di controllare l'output del logcat. :) –

Problemi correlati