gpt4 book ai didi

java - 警报对话框 : Attempted to finish an input event but the input event receiver has already been disposed

转载 作者:行者123 更新时间:2023-11-30 01:04:03 30 4
gpt4 key购买 nike

当我按下“选择照片”按钮时,AlertDialog 似乎取消了,我在 logcat 中收到以下消息:Attempted to finish an input event but the input event receiver has already been disposed

这确实是昨晚的工作,我不记得对此功能进行过任何更改。请帮忙。

private void dispatchTakePictureIntent() {
final CharSequence[] options = {"Take Photo", "Choose from Gallery", "Cancel"};
final AlertDialog.Builder cameraChoice = new AlertDialog.Builder(Person2Screen.this);
cameraChoice.setTitle("Take/choose new photo");
cameraChoice.setItems(options, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (options[which].equals("Take Photo")) {
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
//savePicture(cameraIntent);
if(id.equals(HAPPY_ID2))
startActivityForResult(cameraIntent, REQUEST_HAPPY_PHOTO);
if(id.equals(SURPRISED_ID2))
startActivityForResult(cameraIntent, REQUEST_SURPRISED_PHOTO);
if(id.equals(AFRAID_ID2))
startActivityForResult(cameraIntent, REQUEST_AFRAID_PHOTO);
if(id.equals(UPSET_ID2))
startActivityForResult(cameraIntent, REQUEST_UPSET_PHOTO);
if(id.equals(SAD_ID2))
startActivityForResult(cameraIntent, REQUEST_SAD_PHOTO);
} else if (options[which].equals("Choose Photo")) {
Intent galleryIntent = new Intent(Intent.ACTION_OPEN_DOCUMENT, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
if(id.equals(HAPPY_ID2))
startActivityForResult(galleryIntent, REQUEST_HAPPY_PHOTO);
else if(id.equals(SURPRISED_ID2))
startActivityForResult(galleryIntent, REQUEST_SURPRISED_PHOTO);
else if(id.equals(AFRAID_ID2))
startActivityForResult(galleryIntent, REQUEST_AFRAID_PHOTO);
else if(id.equals(UPSET_ID2))
startActivityForResult(galleryIntent, REQUEST_UPSET_PHOTO);
else if(id.equals(SAD_ID2))
startActivityForResult(galleryIntent, REQUEST_SAD_PHOTO);
} else if (options[which].equals("Cancel")) {
dialog.dismiss();
}
}
});
final CharSequence[] pictureNumbers = {"Picture 1", "Picture 2", "Picture 3", "Reinforcer"};
AlertDialog.Builder selectPhotoNumber = new AlertDialog.Builder(Person2Screen.this);
selectPhotoNumber.setTitle("Which picture would you like to set/change?");
selectPhotoNumber.setItems(pictureNumbers, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (pictureNumbers[which].equals("Picture 1")) {
index = 1;
cameraChoice.show();
} else if (pictureNumbers[which].equals("Picture 2")) {
index = 2;
cameraChoice.show();
} else if (pictureNumbers[which].equals("Picture 3")) {
index = 3;
cameraChoice.show();
} else if (pictureNumbers[which].equals("Reinforcer")) {
index = 4;
cameraChoice.show();
}
}
});
selectPhotoNumber.show();
}

最佳答案

我应该早点注意到这种方式,但我猜你正确地发布了你之前的代码。当前的问题是我们正在尝试将 “从图库中选择”“选择照片” 匹配,后者始终为 false。所以,我们需要纠正这一点。我还稍微重构了您的代码:

private void dispatchTakePictureIntent() { 
final CharSequence[] options = {"Take Photo", "Choose Photo", "Cancel"};
final AlertDialog.Builder cameraChoice = new AlertDialog.Builder(Person2Screen.this);
cameraChoice.setTitle("Take/choose new photo");
cameraChoice.setItems(options, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (options[which].equals("Cancel")) {
dialog.dismiss();
} else {
Intent intent;
int requestCode;

if (options[which].equals("Take Photo")) {
intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
} else { // from doc
intent = new Intent(Intent.ACTION_OPEN_DOCUMENT, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
}

switch (id) {
case HAPPY_ID2:
requestCode = REQUEST_HAPPY_PHOTO;
break;
case SURPRISED_ID2:
requestCode = REQUEST_SURPRISED_PHOTO;
break;
case AFRAID_ID2:
requestCode = REQUEST_AFRAID_PHOTO;
break;
case UPSET_ID2:
requestCode = REQUEST_UPSET_PHOTO;
break;
default:
requestCode = REQUEST_SAD_PHOTO;
break;
}

startActivityForResult(intent, requestCode);
}
}
});

关于java - 警报对话框 : Attempted to finish an input event but the input event receiver has already been disposed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39056269/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com