我已经学习了Android开发的基础知识:LinearLayout
和RelativeLayout
,MainActivity
和activity_main
如何互动等等。我也有过一些Java经验,虽然我不认为自己是专家。
我现在尝试创建的应用程序通常包含两个视图:欢迎屏幕和显示事实的屏幕。应用程序将显示多个事实,因此第二个布局将不止一次显示。两者都将LinearLayout
包含TextView
s。应用程序的整体流程如下:
我现在正在努力解决的问题是确定设计此应用的最佳方式。我知道有很多巨大的选项可以做到这一点。到目前为止,我所做的是创建欢迎布局和事实布局。我使用了Intent
来从Welcome to Fact布局转换。它工作得很好。但是,使用Intent
对我来说似乎效率低下:我需要为每个事实创建一个单独的类和XML布局。但每个事实将使用完全相同的布局,只需显示不同的文本。显然,Back和Next按钮的转换也不同。我觉得必须有更有效的方法来为Android做这件事。
为了让每个人都了解我的知识,我到目前为止只学习了为Android应用设计单一布局,因此只有一个MainActivity
和activity_main
。我接触过Intent
s,但非常微小。
考虑到所有这些,我的整体问题如下:
我有没有办法重复使用Fact布局,只需在每次用户点击Next按钮时加载下一个事实?
从Java,我知道数组,ArrayList
,switch
语句等等。所以,这让我觉得我应该能够利用这些行中的某些东西来加载下一个事实。
如果不是通过Java,那么必须在Android中提供某种预先构建的类或XML布局,这样我才能以某种方式实现这一点。我只是不确定要使用什么....
除了我的整体问题,我还对以下内容感到好奇:
我应该如何处理“下一步”和“后退”按钮?在我当前的应用实现中,我使用Intent
从欢迎屏幕切换到第一个事实。但是,正如我所说,我觉得这是一种效率低下的方法。
我确实发现了ViewSwitchers,但这又要求我为每个事实创建一个单独的布局(至少从我对它们的理解)。但是,我可以使用它从欢迎屏幕切换到事实屏幕。但那仍然没有让我到达我想要的地方。我也研究了Fragments,但我觉得这些都不适用于我的设计。
非常感谢有关此主题的任何帮助!
答案 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。