ディレクトリとそのファイルを認識するための他のアクティビティを取得するにはどうすればよいですか?他のアクティビティや関数でも名前で名前を参照しようとすると、コードはコンパイルされません。私はディレクトリやそのファイルのコピーを作成したくないので、私はファイルパスだけを望んでいません。このようなものを資産やレスキューツリーに含める必要がありますか?もしそうなら、どうしたらいいですか?私は今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
ディレクトリ変数を解決できないということだけです。私は別のクラスのディレクトリでクラスのインスタンスを作成しようとしましたが、そのようにアクセスしましたが、今では受信者アクティビティを開始しようとすると例外が発生します。 – HigginsValhalla