重用相同的布局以显示不同的文本

时间:2016-05-28 16:16:24

标签: java android android-layout

我已经学习了Android开发的基础知识:LinearLayoutRelativeLayoutMainActivityactivity_main如何互动等等。我也有过一些Java经验,虽然我不认为自己是专家。

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

enter image description here

我现在正在努力解决的问题是确定设计此应用的最佳方式。我知道有很多巨大的选项可以做到这一点。到目前为止,我所做的是创建欢迎布局和事实布局。我使用了Intent来从Welcome to Fact布局转换。它工作得很好。但是,使用Intent对我来说似乎效率低下:我需要为每个事实创建一个单独的类和XML布局。但每个事实将使用完全相同的布局,只需显示不同的文本。显然,Back和Next按钮的转换也不同。我觉得必须有更有效的方法来为Android做这件事。

为了让每个人都了解我的知识,我到目前为止只学习了为Android应用设计单一布局,因此只有一个MainActivityactivity_main。我接触过Intent s,但非常微小。

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

我有没有办法重复使用Fact布局,只需在每次用户点击Next按钮时加载下一个事实?

从Java,我知道数组,ArrayListswitch语句等等。所以,这让我觉得我应该能够利用这些行中的某些东西来加载下一个事实。

如果不是通过Java,那么必须在Android中提供某种预先构建的类或XML布局,这样我才能以某种方式实现这一点。我只是不确定要使用什么....

除了我的整体问题,我还对以下内容感到好奇:

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

我确实发现了ViewSwitchers,但这又要求我为每个事实创建一个单独的布局(至少从我对它们的理解)。但是,我可以使用它从欢迎屏幕切换到事实屏幕。但那仍然没有让我到达我想要的地方。我也研究了Fragments,但我觉得这些都不适用于我的设计。

非常感谢有关此主题的任何帮助!

3 个答案:

答案 0 :(得分:3)

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

为您的事实制作布局。只有1。 还有一个java文件。 我假设你知道如何给文本视图一个id并在java文件中获取它。我还假设这个事实在某种程度上显示出来。 (随机?)。 好吧,无论你在欢迎屏幕中打开特定的xml意图,都要使用相同的标准,然后在文本视图中使用TextView.setText()方法。将您的事实存储在这样的数组中

String[] facts = {"fact 1", "fact 2"}

等等。在您的设置文本方法中 做TextView.setText(facts[0]) 用随机数替换0。

答案 1 :(得分:0)

如果您使用viewPager,则可以在"页面"之间滑动。你可以使用片段来做到这一点,并且有一个片段" factory"重用你的布局。

我刚刚完成了这个过程...

http://www.i-programmer.info/ebooks/android-adventures-mastering-fragments.html

答案 2 :(得分:0)

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

您可以制作一个Fact对象和ArrayList,您可以在一个活动(或片段)中轻松循环。这个事实将存储标题和一些文本。 (欢迎屏幕只是另一个事实,为了简单起见)

您可以在按钮上添加一些点击监听器,这些监听器将更新列表中的位置,您可以从那里更改文本视图。

此外,如果您想要保留这些事实而不必在应用加载时创建新对象,那么您可以查看SQLite。