我正在制作一个简单的应用程序,允许用户使用保存全尺寸照片的dispatchTakePictureIntent()来拍照;此处指出; http://developer.android.com/training/camera/photobasics.html#TaskCaptureIntent 。并使用操作栏中的相机图标启动。然后,用户拍照并按“确定”,他们的照片就会出现在使用扩展 BaseAdapter 的类创建的列表中
public boolean onOptionsItemSelected(MenuItem item) {
if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA)) {
dispatchTakePictureIntent();
}
return super.onOptionsItemSelected(item);
}
如果我按照上面的方式启动 Intent ,那么一切似乎都工作正常,但我对删除所有按钮没有响应(单击它只会启动相机 Intent )
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_photo : {
if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA)) {
dispatchTakePictureIntent();
}
}
case (R.id.action_delete) : {
deleteAllPhotos();
}
}
return super.onOptionsItemSelected(item);
}
但是,当这样设置时,我可以删除照片,但是每次我单击相机图标拍摄新照片时,之前拍摄的照片都会消失
生命周期是否有任何微妙的变化或这种差异带来的任何变化?当我努力寻找它如何导致这种不同的行为时。
感谢您的任何意见!
最佳答案
您在案例之后缺少中断或返回语句,因此它会启动 Intent ,然后删除您之前的所有照片,因为如果没有告知中断,案例语句将直接转到下一张照片。
尝试:
switch(item.getItemId()) {
case R.id.action_photo:
...
break;
case R.id.action_delete:
...
break;
}
关于java - 具有多个菜单项的操作栏启动 Intent 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32168966/