【问题标题】:How to create muti-pages forms in Android Studio如何在 Android Studio 中创建多页表单
【发布时间】:2021-09-02 20:13:28
【问题描述】:

我是一个在 android studio 上开发我的第一个应用程序的新手。我想构建一个多页用户注册表单,每个页面对应一个关于用户的数据信息。例如:

  1. User_name:要求用户输入姓名的页面
  2. User_age:要求用户输入他的年龄
  3. 等等

最后收集所有信息并在 firebase 中创建用户配置文件。

我的问题是:可以使用哪些组件?

我已经尝试过使用 putExtras 和 getExtra 的意图。但它很乏味,需要大量的迭代。不确定这是否是一个理想的解决方案。

那你们还有什么?

期待您的贡献。

【问题讨论】:

    标签: firebase android-studio user-interface android-fragments android-intent


    【解决方案1】:

    我建议你只有一个活动并使用不同的片段。在每个片段中,您都向用户询问信息,并且每个片段都有对主要活动的引用,因此您可以轻松收集主要活动中的所有数据。

    我通常通过让我的活动布局只包含一个大的空布局(这里它的 id 是 main_container)来做到这一点

    然后我的活动有一个在布局上加载片段的功能

    public void loadFragment(Fragment fragment) {
        FragmentManager fManager = getSupportFragmentManager();
        FragmentTransaction transaction = fManager.beginTransaction();
        transaction.replace(R.id.main_container,fragment);
        transaction.commit();
    }
    

    现在您只需要创建片段。例如,您有一个 NameFragment 询问用户名。在其中,您有一个函数 setActivity 来设置对主要活动的引用。 然后在Activity的onCreate中就可以使用了

        NameFragment fragment=new NameFragment(); //here if your fragment needs paramenters you
        // can create a static method newInstance and save them in a bundle
        fragment.setActivity(this);
        loadFragment(fragment);
    

    这会将这个片段作为第一个加载。然后从 NameFragment 您可以询问名称,使用对活动的引用来保存它,并使用相同的引用您还可以加载另一个片段

    注意:我不想让您感到困惑,但是您可以使用 setActivity 创建一个接口,在每个片段中实现它,并使 loadFragment 将该接口作为参数,这样您就可以在 loadFragment 内部而不是外部调用该方法

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-13
      相关资源
      最近更新 更多