0

在我的应用程序中,我希望用户填写一个大表格(5-10 个字段)。并非所有字段都是 EditTexts,有些是 Spinners、RadioButtons 等,

因此,不要将它们全部放在一个布局中(用户可能会离开屏幕,看到这么多问题)。我想把它当作一个会话/提问者之类的东西。

在提交每个答案时,最终都会显示一个新问题。

与其为每个问题设置单独的 Activity,不如我更改同一 Activity 的 ContentView。

解决方案如:

1.根据要问的问题使视图的可见性可见/消失

2. 更改 ContentView 和所有 onCreate()。

当我必须更改 ContentViews 或 Visibilities 10 次时效率低下。

我应该在布局中使用片段并用新片段替换它吗?

即使这样,我最终也有 10 个片段类和 10 个布局,每个片段类都有 1 个。

有没有其他方法可以实现这一点。现在我正在使用 Fragments 来做这件事。

谢谢你

4

2 回答 2

1

我有类似的情况,用户必须填写一些请求,有一个状态和导航窗格在整个应用程序中保持不变,所以每次都开始一个新活动没有意义。所以我做了一个主布局,三个线性布局,利用顶部和底部进行导航/状态,中间用于显示问题。

我创建了不同的布局并根据需要对它们进行充气/放气,因为我只有几 (3) 个布局。如果布局数量增加,那么跟踪和充气/放气它们的方法可能会变得复杂。

如果您有顺序流程,则添加和删除布局/问题相当容易。这种方法的一个缺点是 backstack,当您停留在一个活动中时,您必须自己实现逻辑,并且 backpress 将退出该活动。这种方法也有一些优势,因为您在问题中收集的所有数据都是现成的,并且如果您的下一个问题是基于先前的答案,它是一个福音,它减少了在意图中传递它们的大量工作。

但是,我没有太多经验,Fragments因为我选择了这种方法,因为它比片段简单得多,并且需要更少的时间来实现我的要求。

于 2012-09-27T08:15:58.037 回答
1

我相信,Fragments这将是这里的最佳选择,因为无论哪种方式(即动态或创建布局文件)都必须编写 10 次。

所以更好的是片段,因为每个布局都会被之前的布局动态替换。

但是这里也需要考虑一种情况,就是如果以后要在表单中添加新的问题,那么就得对代码做很多修改,否则,这是最好用的地方片段。

于 2012-09-27T07:54:21.310 回答