首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动作栏启动-具有多个菜单项的意图行为

动作栏启动-具有多个菜单项的意图行为
EN

Stack Overflow用户
提问于 2015-08-23 16:37:54
回答 1查看 26关注 0票数 1

我正在制作一个简单的应用程序,允许用户使用保存全尺寸照片的dispatchTakePictureIntent()来拍照;在这里显示;http://developer.android.com/training/camera/photobasics.html#TaskCaptureIntent。并使用动作栏中的摄像头图标启动。然后,用户拍摄照片按下ok,他们的图片出现在一个使用类扩展BaseAdapter创建的列表中。

代码语言:javascript
复制
public boolean onOptionsItemSelected(MenuItem item) {
    if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA)) {
        dispatchTakePictureIntent();
    }
    return super.onOptionsItemSelected(item);
}

如果我像上面一样启动意图,那么一切看起来都很好,但我没有响应删除所有按钮(点击它将ofc只是启动相机意图)

代码语言:javascript
复制
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);
}

然而,当这样的设置,我可以删除的照片,但以前拍摄的照片,每次我点击相机图标,以采取新的照片。

生命周期中是否有任何细微的变化或任何由这种差异引起的变化?因为我正在努力找出它是如何导致这种不同行为的。

谢谢您的意见!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-23 17:08:49

在您的情况之后,您丢失了一个中断或返回语句,所以它启动意图,然后删除所有以前的照片,因为如果没有告诉它,那么case语句会流到下一个照片中。

尝试:

代码语言:javascript
复制
switch(item.getItemId()) {
    case R.id.action_photo:
        ...
        break;
    case R.id.action_delete:
        ...
        break;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32168966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档