如何獲得其他活動來識別目錄及其文件?如果我嘗試在其他活動或函數中通過名稱來引用它們,代碼將無法編譯。我不想製作目錄或其文件的副本,因此我不想只是文件路徑。我是否需要將這些東西包含在資產或資源樹中?如果是這樣,我該怎麼做?我現在聲明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]);
}
}
}
如果它不能編譯,你還有其他問題。編譯錯誤是什麼? – Argyle 2012-02-13 04:39:31
只是無法解析Directory變量。我試圖用另一個類中的目錄創建一個類的實例並以這種方式訪問它,但現在當我嘗試啓動收件人活動時,我得到一個異常。 – HigginsValhalla 2012-02-19 00:35:38