我有一个片段,其中包含要发送到另一个活动的数据。从intent中发送和检索一个额外内容正在工作,但不适用于其他字节数组。请调查一下。
片段类
String userId = profile.getId();
Bitmap bitmap = getFacebookProfilePicture(userId);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
Intent myIntent = new Intent(getActivity(), Main2Activity.class);
myIntent.putExtra("name",name);
myIntent.putExtra("image",byteArray);
getActivity().startActivity(myIntent);
MAIN2ACTIVITY
Intent intent = getIntent();
String name = intent.getExtras().getString("name");
byte[] byteArray = intent.getExtras().getByteArray("image");
Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
第三行main2activity抛出错误:将结果ResultInfo {who = null,request = 129742,result = -1,data = Intent {(has extras)}}传递给活动失败
这似乎是主要的错误 引起:java.lang.NullPointerException:尝试调用虚方法' boolean android.graphics.Bitmap.compress(android.graphics.Bitmap $ CompressFormat,int,java.io.OutputStream)'在空对象引用上
答案 0 :(得分:0)
您也可以尝试这样..
Bundle bundle = getIntent().getExtras();
if(bundle!=null){
String name =bundle.getString("name");
byte[] byteArray =getIntent().getByteArrayExtra("image");
Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
}
经过测试肯定会帮助你......
答案 1 :(得分:0)
根据您在评论中发布的错误
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.graphics.Bitmap.compress(android.graphics.Bitmap$CompressFormat, int, java.io.OutputStream)' on a null object reference
看起来错误位于bitmap.compress
行,这意味着您通过这种方式获得的位图为空。
Bitmap bitmap = getFacebookProfilePicture(userId);
这就是调用bitmap.compress时出错的原因。尝试检查此功能,也可以调试器进行确认。