重复使用相同的布局以显示不同的文本 我已经学习了Android开发的基本知识:线性布局和 ReloLayOut主活动< >代码> Actuviyjava主< 交互。p>

重复使用相同的布局以显示不同的文本 我已经学习了Android开发的基本知识:线性布局和 ReloLayOut主活动< >代码> Actuviyjava主< 交互。p>,java,android,android-layout,Java,Android,Android Layout,我现在尝试创建的应用程序通常由两个视图组成:欢迎屏幕和显示事实的屏幕。应用程序将显示多个事实,因此第二个布局将显示多次。两者都是LinearLayouts,包含TextViews。应用程序的总体流程如下所示: 我现在正在努力的事情是确定设计这个应用程序的最佳方式。我知道有很多选择可以做到这一点。到目前为止,我所做的是创建欢迎版面和事实版面。我使用了意图,以便从欢迎到事实的布局过渡。而且效果很好。然而,对我来说,使用Intents来实现这一点似乎效率低下:我需要为每个事实创建单独的类和XML布局

我现在尝试创建的应用程序通常由两个视图组成:欢迎屏幕和显示事实的屏幕。应用程序将显示多个事实,因此第二个布局将显示多次。两者都是
LinearLayout
s,包含
TextView
s。应用程序的总体流程如下所示:

我现在正在努力的事情是确定设计这个应用程序的最佳方式。我知道有很多选择可以做到这一点。到目前为止,我所做的是创建欢迎版面和事实版面。我使用了
意图
,以便从欢迎到事实的布局过渡。而且效果很好。然而,对我来说,使用
Intent
s来实现这一点似乎效率低下:我需要为每个事实创建单独的类和XML布局。但每个事实将使用完全相同的布局,只是要显示不同的文本。很明显,后退和下一步按钮的过渡不同。我觉得必须有一种更有效的方法来为Android实现这一点

为了让大家了解我的知识范围,到目前为止,我只学会了为Android应用程序设计单一布局,因此只有一个
MainActivity
activity\u main
。我接触了
Intent
s,但接触的次数非常少

考虑到所有这些,我的总体问题如下:


是否有一种方法可以让我重用事实布局,并在用户每次点击下一个按钮时加载下一个事实


在Java中,我了解数组、
ArrayList
switch
语句等。因此,这让我觉得我应该能够利用这些语句,以便能够在下一个事实中加载

如果不是通过Java,Android中必须提供某种预先构建的类或XML布局,使我能够以某种方式实现这一点。我只是不知道该用什么

除了我的总体问题外,我还对以下问题感到好奇:

我应该如何处理“下一步”和“后退”按钮?在我当前的应用程序实现中,我使用了
意图
从欢迎屏幕切换到第一个事实。然而,正如我所说,我觉得这是一种低效的方法

我确实发现了,但这将再次要求我为每个事实创建一个单独的布局(至少从我对它们的理解来看)。但是,我可以使用它从欢迎屏幕切换到事实屏幕。但这仍然不能让我达到我想去的地方。我也调查过,但我觉得这些根本不适用于我的设计


在此主题上的任何帮助都将不胜感激

如果使用viewPager,可以在“页面”之间滑动。您可以使用片段来实现这一点,并有一个片段“工厂”来重用您的布局

我刚刚完成了这一段


您可以在不输入任何复杂主题的情况下执行此操作

为你的事实做一个布局。只有一个。 和一个java文件。 我假设您知道如何为文本视图提供一个
id
,并将其保存在java文件中。我还假设这一事实在某种程度上得到了证明。(随机?)。 不管您如何在欢迎屏幕中打开特定的xml意图,都要使用相同的条件,然后在文本视图中使用
TextView.setText()
方法。将事实存储在如下数组中

String[] facts = {"fact 1", "fact 2"}
等等。在set text方法中 Do
TextView.setText(事实[0])

将0替换为随机数。

您可以使用片段,并且可以在所有活动和片段之间共享单个XML布局,但是这实际上比演示流程所需的工作量要多

您可以创建一个
事实
对象和一个
数组列表
,您可以在一个活动(或片段)中轻松循环。此事实将存储标题和一些文本。(欢迎屏幕只是另一个事实,让事情变得简单)

您可以将一些单击侦听器添加到按钮中,这些按钮将更新列表中的位置,并且您可以从此处更改文本视图


此外,如果您希望保留这些事实,并且不必在应用程序加载时创建新对象,那么您可以查看SQLite

你不认为对于一个刚刚开始工作的人来说,将事实存储在数组中并使用集合文本会更容易吗?只是说说而已。无意冒犯。查看寻呼机是一个很好的主意,但对初学者来说可能不是对不起,我的回复耽搁了!然而,你的指导是一个巨大的帮助-尝试了它,它的工作完美无瑕。再次感谢!如果我着手解决这个问题,我希望能够将我的解决方案发回这个网站thread@coolDude很高兴我能帮助我。我也很抱歉反应太晚。我很忙。无论如何,我很高兴能帮上忙