参照ボタンをクリックしようとするたびに、ギャラリーを参照してそこから写真を選択し、新しいアクティビティに表示したいと考えています。同じアクティビティで写真を表示するまでエラーはありませんでしたが、別の意図で写真を転送するようにコードを変更するとすぐに強制終了エラーが発生します
これが私のコードです:
メインスクリーン :
Button button = (Button) findViewById(R.id.Button01);
button.setOnClickListener(new OnClickListener()
{
public void onClick(View arg0)
{
Intent intent1 = new Intent(MainActivity.this,Edit.class);
startActivity(intent1);
}
});
別の画面:
public class Edit extends Activity
{
private String selectedImagePath;
private static final int SELECT_PICTURE = 1;
private ImageView img;
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.edit);
img = (ImageView)findViewById(R.id.ImageView1);
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), SELECT_PICTURE);
}
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (resultCode == RESULT_OK)
{
if (requestCode == SELECT_PICTURE)
{
Uri selectedImageUri = data.getData();
selectedImagePath = getPath(selectedImageUri);
System.out.println("Image Path : " + selectedImagePath);
img.setImageURI(selectedImageUri);
}
}
}
public String getPath(Uri uri) {
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(uri, projection, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}