【问题标题】:How to create muti-pages forms in Android Studio如何在 Android Studio 中创建多页表单
【发布时间】:2021-09-02 20:13:28
【问题描述】:
我是一个在 android studio 上开发我的第一个应用程序的新手。我想构建一个多页用户注册表单,每个页面对应一个关于用户的数据信息。例如:
- User_name:要求用户输入姓名的页面
- User_age:要求用户输入他的年龄
- 等等
最后收集所有信息并在 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 内部而不是外部调用该方法