【问题标题】:Launching camera intent from onCreate or onCreateView in Fragment?从片段中的 onCreate 或 onCreateView 启动相机意图?
【发布时间】:2012-07-22 14:18:42
【问题描述】:

我正在开发一个使用Fragment 的Android 应用程序,它将使用Intent 启动相机来捕获图像,然后片段还包含一些EditText 供用户填写时Intent 返回。

我想知道启动意图的最佳位置(最佳实践)是什么?是在onCreate() 还是onCreateView() 方法中都被覆盖了?

【问题讨论】:

  • 恕我直言,片段不应从 onCreate()onCreateView() 开始活动。片段应该只根据用户的积极行为(例如,点击操作栏项目、点击按钮)来启动活动。
  • 感谢您的意见。我很乐意这样做。不过为了清楚起见,用户已经按下了一个标有“添加”的按钮,该按钮启动另一个活动并获取片段。我认为从 Fragment 启动 Camera 是可以的(至少我认为用户不会太困惑)。

标签: android android-intent android-fragments


【解决方案1】:

正如CommonsWare 在第一条评论中所述,片段不应从onCreateonCreateView 开始一个Activity。他的论点是,由于用户没有按下按钮,所以不应该采取任何行动。然而,在我的设计中,按下了"Add" 按钮,然后启动了我想自动启动相机意图的片段。我这样做的原因是强迫用户先拍照,因为我的应用程序需要一张照片才能工作。然后用户将填写一些其他字段并保存数据。

我现在意识到CommonsWare 是对的。最好让用户单击另一个按钮,然后让他们惊讶于他们没想到的东西。我还意识到,在强制用户采取行动之前让用户查看表单中需要哪些字段是个好主意。

我最终添加了一个带有相机图标的ImageButton 来启动意图,并且效果很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-28
    相关资源
    最近更新 更多