firebase - 如何在 Android Studio 中创建多页表单
问题描述
我是一个在 android studio 上开发我的第一个应用程序的新手。我想构建一个多页用户注册表单,每个页面对应一个关于用户的数据信息。例如:
- User_name:页面要求用户输入他的名字
- user_age:要求用户输入他的年龄
- 等等
最后收集所有这些信息并在 firebase 中创建用户配置文件。
我的问题是:可以使用哪些组件?
我已经尝试过使用 putExtras 和 getExtra 的意图。但它很乏味,需要大量的迭代。不确定这是否是一个理想的解决方案。
那你们还有什么?
期待您的贡献。
解决方案
我建议您只有一项活动并使用不同的片段。在每个片段中,您都向用户询问信息,并且每个片段都有对主要活动的引用,因此您可以轻松收集主要活动中的所有数据。
我通常通过让我的活动布局只包含一个大的空布局来做到这一点(这里它的 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 内部而不是外部调用该方法
推荐阅读
- ios - 设置自动约束,使其在 ios swift 中的所有设备中显示相同
- android - Android - 在主布局中多次更新布局中的 TextView
- xml - 将 xsd 元素导出到新的 xsd 文件
- python - 如何在opencv中正确地将图像转换为灰度
- javascript - document.getElementsByName 在 android 的 webview 中的某些网站中不起作用
- web-component - LitElement 加载外部脚本
- android - 安装应用程序后,未创建内部存储(Android>data)包文件夹
- javascript - 如何将一个流按顺序拆分成多个流
- javascript - 是否可以更改点击元素?
- postgresql - Postgres docker“用户“postgres”没有分配密码。”