そこで、デバイスのギャラリーを開くように促す機能を見つけました。しかし、周りを検索すると、これを変更して画像パスを返すのに役立つものは見つかりませんでした。彼らは、私がボイド自体に置いた後、拒否される onActivityResult() について何か言います。これについて何か助けはありますか?
public void chooser() {
AlertDialog.Builder myDialog
= new AlertDialog.Builder(IPAddress.this);
myDialog.setTitle("Import Menu Images");
LinearLayout layout = new LinearLayout(IPAddress.this);
layout.setOrientation(LinearLayout.VERTICAL);
myDialog.setView(layout);
myDialog.setPositiveButton("Open Folder", new DialogInterface.OnClickListener() {
// do something when the button is clicked
public void onClick(DialogInterface arg0, int arg1) {
Intent i = new Intent(
Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(i, 1);
}
});
myDialog.setNegativeButton("Exit", new DialogInterface.OnClickListener() {
// do something when the button is clicked
public void onClick(DialogInterface arg0, int arg1) {
arg0.dismiss();
}
});
myDialog.show();
}
選択した画像のパスを返し、そのパスを使用して上記のファイルをコピーし、アクティビティの OnCreate で作成したディレクトリに保存します。
また、「フォルダーを開く」ボタンをクリックすると、次のエラーが表示されるため、上記の機能をデバッグできないようです
The application Camera(process.com.android.gallery) has stopped unexpectedly. Please try again.
私は何度も試しました。エミュレーターにフロントカメラも追加しました。
関数はここで呼び出されます:
Button menu_image = (Button) findViewById(R.id.menu_image);
menu_image.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View arg0) {
chooser();
}
});
したがって、可能な場合は、セレクターが文字列 (?) 型を返し、それを使用してファイルをコピーし、名前を変更したいと思います。