2012-02-13 83 views
0

如何獲得其他活動來識別目錄及其文件?如果我嘗試在其他活動或函數中通過名稱來引用它們,代碼將無法編譯。我不想製作目錄或其文件的副本,因此我不想只是文件路徑。我是否需要將這些東西包含在資產或資源樹中?如果是這樣,我該怎麼做?我現在聲明oncreate函數之外的目錄,並嘗試將活動的實例與其他活動中的文件一起使用,以便它可以作爲成員訪問該文件。這不起作用,因爲我得到一個異常。我已經包含下面的其他活動的代碼。讓創建的目錄和文件全局識別

//outside oncreate 

public File newdir=null; 

// inside oncreate 

File sdc=Environment.getExternalStorageDirectory(); 

    String faceplace = "faceplace"; 

    newdir = new File(sdc,faceplace); 

    if (!newdir.exists()) 
    { 

     newdir.mkdirs(); 
    } 


    Random generator = new Random(); 
    int n = 10000; 
    n = generator.nextInt(n); 
    String facename = "face" + n + ".jpg"; 

    File picfile = new File (newdir,facename); 

這裏是我嘗試去識別newdir的活動的代碼。如果我只是使用它說它不能解決它的變量。如果我嘗試創建前一個類的實例,我將在下面執行該操作,則該活動將不會啓動。調試器顯示「無法啓動活動ComponentInfo {senior.sem/senior.sem.facerec}:java.lang.NullPointerException」。

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.facerec); 

    ImageView imageView2 = (ImageView)findViewById(R.id.imageView2); 


PicturetakerActivity pictake = new PicturetakerActivity(); 



File newdir = pictake.newdir; 
File[] farray = newdir.listFiles(); 


int size =farray.length; 

Bitmap[] gallery= new Bitmap[size]; 



for (int i = 0; i < size; i++) 
{ 

    try { 

     FileInputStream in = new FileInputStream(farray[i]); 

     Bitmap face = null; 

     face = BitmapFactory.decodeFile(farray[i].getAbsolutePath()); 

     gallery[i]=face; 

    } catch (Exception e) { 
      // e.printStackTrace(); 
    }   

    imageView2.setImageBitmap(gallery[i]); 

} 






} 

}

+0

如果它不能編譯,你還有其他問題。編譯錯誤是什麼? – Argyle 2012-02-13 04:39:31

+0

只是無法解析Directory變量。我試圖用另一個類中的目錄創建一個類的實例並以這種方式訪問​​它,但現在當我嘗試啓動收件人活動時,我得到一個異常。 – HigginsValhalla 2012-02-19 00:35:38

回答

0

你不應該創建自己的Activity實例。生命週期方法在特定時間內由操作系統調用,因爲活動和服務被創建並銷燬。由於您通過致電new創建PicturetakerActivity,因此其代碼onCreate()從未發生過。不要這樣做。

更好的方法是在應用程序的SharedPreferences或SQLite數據庫中保留目錄名稱,或者甚至是根據您的需要在應用程序中保存全局值的靜態單例註冊表。如果目錄名不會改變,你甚至可以在某個地方使它成爲一個靜態的最終常量。

+0

非常感謝,這有助於 – HigginsValhalla 2012-02-21 02:19:24