Java 不拍照时出现nullpointerexception
我有一个应用程序,在一个活动中我正在拍照(除其他外) 现在,当我按下按钮拍照时,它会打开相机。如果我按下后退按钮或取消按钮(不拍照),它会崩溃并发出警告 空指针 及 未能传递结果ResultInfo 在这方面:Java 不拍照时出现nullpointerexception,java,android,nullpointerexception,Java,Android,Nullpointerexception,我有一个应用程序,在一个活动中我正在拍照(除其他外) 现在,当我按下按钮拍照时,它会打开相机。如果我按下后退按钮或取消按钮(不拍照),它会崩溃并发出警告 空指针 及 未能传递结果ResultInfo 在这方面: Bitmap photo = (Bitmap) data.getExtras().get("data"); 我使用: protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Bitmap photo = (Bitmap) data.getExtras().get("data");
我使用:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == CAMERA_REQUEST){
Bitmap photo = (Bitmap) data.getExtras().get("data");
imageView.setImageBitmap(photo);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
photo.compress(Bitmap.CompressFormat.PNG, 100, stream);
blobvalue = stream.toByteArray();
Bundle extras = new Bundle();
Intent k=new Intent(this,MainActivity.class);
extras.putParcelable("Bitmap", photo);
k.putExtras(extras);
}
if (requestCode == RESULT_CANCELED) {
}
}
在我的适配器中:
ImageView myImage=(ImageView) convertView.findViewById(R.id.myimage);
final Bitmap image;
if(theItems.getImagemyItems() != null)
{
byte []temp = theItems.getImagemyItems();
image = BitmapFactory.decodeByteArray(temp, 0, temp.length);
myImage.setImageBitmap(image);
}
else
{
image = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_launcher);
myImage.setImageBitmap(image);
}
就我所记得的,上面提到的都是为了这个目的。
我不知道还能做什么。您刚刚测试了请求代码,但还没有resultCode,因此我建议您检查resultCode用户是否已捕获图像或取消捕获 尝试:
您只需在您的
onActivityResult
中进行检查,当用户成功拍照时,案例结果\u OK
,当您按下hardware back(硬件后退)按钮并想返回活动时,案例结果\u取消
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == CAMERA_REQUEST){
if(resultCode == RESULT_OK){
// your code comes here
}
if(resultCode == RESULT_CANCELED){
}
}
}
你可以发布stacktrace。你不是在测试resultCode以了解用户是否按下了back。@George请不要评论与答案无关的内容。:好的,对于结果,我应该将其留空吗?@George这取决于你的要求,如果用户按下back键时你不想做任何事情,那么就不要写任何东西。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == CAMERA_REQUEST){
if(resultCode == RESULT_OK){
// your code comes here
}
if(resultCode == RESULT_CANCELED){
}
}
}