我正在制作一个简单的应用程序,允许用户使用保存全尺寸照片的dispatchTakePictureIntent()来拍照;在这里显示;http://developer.android.com/training/camera/photobasics.html#TaskCaptureIntent。并使用动作栏中的摄像头图标启动。然后,用户拍摄照片按下ok,他们的图片出现在一个使用类扩展BaseAdapter创建的列表中。
public boolean onOptionsItemSelected(MenuItem item) {
if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA)) {
dispatchTakePictureIntent();
}
return super.onOptionsItemSelected(item);
}如果我像上面一样启动意图,那么一切看起来都很好,但我没有响应删除所有按钮(点击它将ofc只是启动相机意图)
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);
}然而,当这样的设置,我可以删除的照片,但以前拍摄的照片,每次我点击相机图标,以采取新的照片。
生命周期中是否有任何细微的变化或任何由这种差异引起的变化?因为我正在努力找出它是如何导致这种不同行为的。
谢谢您的意见!
发布于 2015-08-23 17:08:49
在您的情况之后,您丢失了一个中断或返回语句,所以它启动意图,然后删除所有以前的照片,因为如果没有告诉它,那么case语句会流到下一个照片中。
尝试:
switch(item.getItemId()) {
case R.id.action_photo:
...
break;
case R.id.action_delete:
...
break;
}https://stackoverflow.com/questions/32168966
复制相似问题