在我的应用程序中,我希望用户填写一个大的表单(5-10个字段)。不是所有的字段都是EditTexts,有些是纺丝器,RadioButtons等等。
因此,与其把它们都放在一个布局中(用户可能会离开屏幕,看到这么多问题)。我想把它当作一种谈话/提问的人。
在提交每一个答案时,最终都会出现一个新的问题。
与其对每个问题都有单独的活动,不如更改相同活动的ContentView。
解决办法如下:
1.根据要问的问题,使视图的可见性可见/消失
2.更改ContentView和所有onCreate().
当我必须更改ContentViews或可视功能10次时,效率很低。
我应该在布局中使用片段并用新片段替换它吗?
即使如此,我最后还是有10个片段类和10个布局,每个片段类有1个。
有没有其他方法来实现这个。现在我是用碎片来做的。
谢谢
发布于 2012-09-27 07:54:21
我相信,在这里,Fragments将是最好的选择,因为无论采用哪种方式(即动态或创建布局文件),您都必须编写10次。
所以更好的是片段,因为每个布局都将被动态地替换为以前的布局。
但是在这里你也需要考虑一种情况,那就是,如果将来你必须在你的表单中添加新的问题,那么你将不得不在代码中做很多修改,否则,这是使用片段的最佳地方。
发布于 2012-09-27 08:15:58
我也遇到过类似的情况,用户必须填写几个请求,在整个应用程序中都有一个状态和导航窗格保持不变,所以每次启动新的活动都没有意义。因此,我做了一个主布局,三个线性布局,使用顶部和底部的导航/状态,中间是用来显示问题。
我创建了不同的布局,并根据需要对它们进行了充气/放气,因为我只有几个布局。如果布局的数量增加,那么保持跟踪、充气/放气的方法可能会变得复杂。
如果您有一个顺序流,添加和删除布局/问题是相当容易的。这种方法的一个缺点是背靠背,当您停留在一个活动中时,您必须自己实现逻辑,并且反向按压将退出该活动。这种方法也有一些优点,因为你在问题中收集到的所有数据都是现成的,如果你的下一个问题是基于先前的答案,那么它可以减少大量的工作来传递它们的意图。
但是,我对Fragments没有多少经验,因为我选择了这种方法,因为它比片段简单得多,而且实现我的需求所需的时间也更少。
https://stackoverflow.com/questions/12616094
复制相似问题