无法将reult意图发送给第二个活动
注意:我正在使用此库https://github.com/jdamcd/android-crop
如果我删除这三行
,这段代码可以正常工作
Intent i=new Intent(MainActivity.this,Edit.class);
i.putExtra("imageUri", uri.toString());
startActivity(i);
以下是我想传递给第二个活动的结果意图
private void handleCrop(int resultCode, Intent result) {
hideProgress();
if (resultCode == RESULT_OK){
resultView.setImageURI(Crop.getOutput(result));
uri=result.getData();
//result.setData(null);
Intent i=new Intent(MainActivity.this,Edit.class);
i.putExtra("imageUri", uri.toString());
startActivity(i);
}
错误:引起:com.soundcloud.android.crop.example.MainActivity.handleCrop(MainActivity.java:188)中的java.lang.NullPointerException 第188行是:i.putExtra(" imageUri",uri.toString());
答案 0 :(得分:0)
检查uri.toString(
)是否为空
if(uri.toString() != null && !uri.toString().isEmpty())
i.putExtra("imageUri", uri.toString());
在通过Intent
传递数据之前。
答案 1 :(得分:0)
检查uri
是否为空,如下所示:
if(uri != null)
i.putExtra("imageUri", uri.toString());
修改强>
怎么可能是null?
它为null,因为getData()实际上是null。
resultview可以顺利保存到imageview
好的回答是,您可以查看Crop.getOutput(result)
here的源代码。来自源代码:
public static Uri getOutput(Intent result) {
return result.getParcelableExtra(MediaStore.EXTRA_OUTPUT);
}
因此Crop.getOutput(result)
无法从Uri
获取getData()
。它使用getParcelableExtra()
获取它。所以,将代码更改为:
private void handleCrop(int resultCode, Intent result) {
hideProgress();
if (resultCode == RESULT_OK){
resultView.setImageURI(Crop.getOutput(result));
uri=result.getParcelableExtra(MediaStore.EXTRA_OUTPUT);
//result.setData(null);
Intent i=new Intent(MainActivity.this,Edit.class);
i.putExtra("imageUri", uri.toString());
startActivity(i);
}