2011-09-24 14 views
9

मेरे पास बिटमैप है जो कि एक नई गतिविधि में दिखने की ज़रूरत है, इसलिए मैं इसे देखता हूं और खुली गतिविधि में मैं इसे लोड करने का प्रयास करता हूं लेकिन मुझे एक नल पॉइंटर एक्सेप्शन मिलता है।एंड्रॉइड, अलग-अलग गतिविधियों से कैश में बिटमैप सहेजना और लोड करना

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); 

और उसके बाद नई गतिविधि में मैं इसे खोलने का प्रयास करें:

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

आपको यह उल्लेख करना चाहिए कि कौन सी रेखा NullPointerException को फेंकता है। –

उत्तर

4

बस अपने कोड की जाँच करें: यहाँ मैं छवि को बचाने

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

आप findViewById लिखा है() सामग्री दृश्य सेट करने से पहले। यह गलत है।

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

    // do your operations here 
    } 
+0

ओएमजी, मुझे ब्रेक चाहिए), यह ठीक काम करता है, यह इंगित करने के लिए धन्यवाद कि बाहर =) – user924941

+0

आपको लॉगक आउटपुट में त्रुटि रेखा संख्या को देखना चाहिए था। हमेशा इसे ध्यान में रखें कि लॉगकैट आउटपुट को कभी भी न भूलें। :) –

संबंधित मुद्दे