【问题标题】:Android - Switching between Activities and Screens with same xml fileAndroid - 使用相同的 xml 文件在活动和屏幕之间切换
【发布时间】:2017-12-08 10:45:49
【问题描述】:

我正在构建一个用于教育目的的应用,有很多问题和挑战需要用户解决。但是,如果我为每个问题创建很多问题和一个 xml 文件和活动,那将是一个巨大的屏幕数量,因为我想要有不同类型的问题,用户应该能够在其中编写代码,选择一个代码块或选择关于理论和东西的正确答案。 有没有办法为一种特定类型的问题使用相同的屏幕模型(xml 文件)?例如,对用户应该选择正确答案的所有屏幕和问题使用一个模型,以及另一种问题的另一种模式..

p.s:是的,我是 Android 的新手

谢谢! :)

【问题讨论】:

  • 您可以使用 <include layout="@layout/common_helpinfo" ></include> 之类的方式包含现有 XML。您可以通过传递变量来进一步使用数据绑定。例如以上可能是<include layout="@layout/common_helpinfo" app:tagstr="@{@string/hi_tag_world1}" > </include>。 (然后在 XML 中使用,如 android:tag="@{tagstr}")。

标签: java android xml class android-studio


【解决方案1】:

我会推荐使用 FragmentStatePagerAdapter

您只需要一个布局,并且每次片段失去焦点时,它都会自动销毁。

与适配器相同。您只需创建可见视图和另外 2 个。在这种情况下,您将看到一个可见的问题,一个在左侧,一个在右侧。

如果您需要任何帮助,请告诉我。

【讨论】:

  • by "你会看到一个可见的问题,一个在左边,一个在右边。" 你的意思是用户可以去下一个问题然后去回到上一个问题?另外,这是否使得无法保存问题的当前状态?比如如果用户想回到某个问题,看看他是否回答正确,这可能吗?
  • 你知道适配器在android上是如何工作的吗?是的,您可以将答案保存在数据库中,并在用户返回时将其放回。
  • 我知道它是什么(列表的东西,对吧?),但不知道它是如何工作的
  • 假设您有 10 个问题。您将拥有当前、上一个和下一个问题,而不是创建 10 个问题。它会自动创建和销毁,所以你不会浪费你的内存
  • 嗯,好的,我现在知道了,谢谢!我将它与 Fragments 一起使用,对吗?
【解决方案2】:

使用Fragments 在您的活动中显示问题。

简而言之,Fragment 是具有自己布局的迷你 Activity,因此每种不同类型的问题都应该有一个对应的 Fragment。这应该正是您所需要的。

例如,您可以在项目中创建一个 fragment_radiobox 和一个 fragment_codesn-p。在第一个中,您将包含一个针对您的问题的 TextView 和几个用于答案的复选框,在第二个中,您将有一个 EditText 字段来编写一些代码。您可以根据要显示的问题在主要活动中调用这两个片段中的任何一个。

【讨论】:

  • 那么,如果用户的答案是正确的,它会带用户到下一个具有相同xml模型的问题吗?我应该像活动一样创建这些片段吗?
【解决方案3】:

您可以在 xml 文件中定义各种问题,例如复选框、单选按钮、Edittexts 等,并在必要时显示或隐藏它们。

【讨论】:

    猜你喜欢
    • 2020-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多