我正在创建一个简单的应用程序,允许用户使用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);
}
如果我按上述方式启动意图,那么一切似乎都运行正常,但我没有对全部删除按钮的响应(点击它只会启动相机意图)
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);
}
然而,当我这样设置时,我可以删除照片,但每次点击相机图标拍摄新照片时,之前拍摄的照片都会消失
生命周期中是否有任何微妙的变化或由此差异引入的任何内容?因为我正在努力寻找它如何导致这种不同的行为。
感谢您的任何意见!
答案 0 :(得分:0)
你在案件结束后错过了一个中断或返回语句,因此它会启动意图,然后删除你以前的所有照片,因为如果没有告诉他们中断案例陈述,那么这些照片将会传到下一张照片。
尝试:
switch(item.getItemId()) {
case R.id.action_photo:
...
break;
case R.id.action_delete:
...
break;
}