java - 具有多个菜单项的操作栏启动 Intent 行为

标签 java android

我正在制作一个简单的应用程序,允许用户使用保存全尺寸照片的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/

相关文章:

android - 使用 Open Graph API 在 Android 中发布健身类(class)数据点位置

java - 在 Spring Boot 中以编程方式配置 DataSource

java - 构造函数中的继承

android - XML 中 setTag(key, value) 的等价性

java - 如何在drawable中获取图像的ID

android - 如何在 Parse 设置中获取 applicationID 和服务器?

java - 在java IO中读取包含单行字符串的大文件的最佳方法

java - Android 地理围栏(定位服务)——如何触发应用内事件

java - 如何更新与hibernate的关系?

android - 如何在 Webview 中向下滚动时隐藏操作栏/工具栏