这是我第一个没想到的奇怪结果。这可能是该领域缺乏技能。
好吧,我有一个按钮,我需要通过它从手机图库中选择一张图片(可能来自 sdcard)。我使用隐式意图调用电话图库并获得了绝对图像路径startActivityForResult()
。立即调用另一个活动,将该路径与startActivity()
.
根据我的情况,我在onClick()
of 按钮中编写了以下代码。
@Override
public void onClick(View v) {
upLoadPhoto();
}
protected void upLoadPhoto() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null);
intent.setType("image/*");
intent.putExtra("return-data", true);
System.out.println("select image");
startActivityForResult(intent, 1);
startActivity(next);
finish();
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 1 && data != null && data.getData() != null){
Uri uri = data.getData();
if (uri != null) {
Cursor cursor = getContentResolver().query(uri, new String[] { android.provider.MediaStore.Images.ImageColumns.DATA }, null, null, null);
cursor.moveToFirst();
final String imageFilePath = cursor.getString(0);
System.out.println("Background : "+imageFilePath);
next.putExtra("backImagePath", imageFilePath);
cursor.close();
super.onActivityResult(requestCode, resultCode, data);
}
}
}
当我单击按钮时,startActivity(next)
首先调用,然后startActivityForResult(intent,1)
调用。当我试图通过捆绑对象获取第二个活动中的图像路径时,我得到NullPointerException
的是因为startActivity(next)
首先被调用。
当我看到我的调试点不符合预期时,我惊掉了下巴。希望我得到这个问题的确切原因。
谢谢阿斯
温