2015-05-20 15 views
0

我正在研究一个项目,其中有多个选项卡,并且我希望基于前一个选项卡中选择的内容动态设置每个选项卡的内容。 (对于我的选项卡,我使用SlidingTabLayoutViewPager)。我目前正确设置了第一个标签,并将其绑定到EventBus,该标签根据我的R.layouts.tab_2模板创建LinearLayout,并动态添加内容。我无法弄清楚的是如何将我的LinearLayout保存回tab_2.xml文件。我看到了使用SharedPreferences保存的建议,但是这不允许我将它保存为正确的文件类型。将布局保存回xml

如果有更简单的方法来做到这一点,比如更新已经创建的选项卡,我愿意接受该选项,而不是将布局保存回XML文件中。我在Android Studio编程方面相当新,但仍然试图让基础知识失效。

+0

您不会以编程方式将布局保存到xml文件中。没有这样做的机制。他们甚至在你将它们打包成apk文件时都不会有xml文件,所以它们是为了效率而预编译的。 –

+0

是否有更好的方式保存布局或将其发送到已创建的片段? – DuckyDisciple

回答

0

当我解释它时,您的第一个选项卡基本上是一个设置页面。用户做了一些事情,并且由于这些事情 - 第二个选项卡上的布局看起来不同。

您需要根据用户交互保存一些变量。例如,如果你有一个复选框,用户将按下 - 当你检查它时,你会设置一个布尔值为true,当他们没有检查它时,你会设置为false。当用户导航到第二个选项卡时,您将检查该布尔值的值 - 并相应地更改该布局。

希望这个概念即使在其简单性中也能帮助您了解如何构建应用程序以实现功能。

+0

我完全理解了面向对象编程的概念。我一直在用C#编写应用程序多年。从逻辑上讲,我知道有5种方法可以做我想做的事情,但上周我刚刚开始使用Android Studio,并且仍在试图弄清楚所有事情的流程。 我试图在创建Fragment时检查这些值,但是我得到一个错误,因为它是在有任何用户输入之前创建的。我尝试了一个onFocusChanged监听器,但是当我更改标签时它从未触发过。我想我需要的是如何在获得焦点时更新选项卡。 – DuckyDisciple

+0

我删除了我的帖子的那一部分。 关于你在说什么,我会研究片段生命周期以更好地理解它是如何工作的。在ViewPager中,我相信片段在刷卡时会重新膨胀 - 这意味着您需要将这些变量存储在活动区域​​中,例如包含活动。您还可以在其中全局扩展应用程序类和存储变量。 –

+0

谢谢埃文。该片段不会在刷卡时重新膨胀(或者至少不会通过'onCreateView'中的内容),但至少我正朝着正确的方向前进。 – DuckyDisciple