首页 > 解决方案 > 将两个片段的数据发送到 Firebase(片段明智或一次性)

问题描述

我在一项活动中有两个片段。在第一个片段中,我有姓名、电子邮件、性别和电话号码等字段,然后通过下一个按钮替换为第二个片段,在第二个片段中,我有一个密码并确认密码字段。现在我想将数据发送到firebase片段或一次发送两个片段的数据(通过按下第二个片段上的注册按钮)。但不知道该怎么做

//第一个片段

    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/purple_200"
    tools:context=".CustomerRegisterFragment">
    <ImageView
        android:id="@+id/imageView"
        android:layout_width="131dp"
        android:layout_height="46dp"
        android:src="@drawable/logo"
        android:textAlignment="center"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.18"
        tools:ignore="MissingConstraints"
        android:contentDescription="TODO" />

    <TextView
        android:id="@+id/textViewCustomerDetails"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:fontFamily="@font/courbd"
        android:text="@string/personal_details"
        android:textColor="@color/black"
        android:textSize="24sp"
        android:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.28"
        tools:ignore="MissingConstraints" />

    <LinearLayout
        android:id="@+id/linearLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingStart="20dp"
        android:paddingEnd="20dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.439"
        tools:ignore="MissingConstraints">

        <TextView
            android:id="@+id/textViewUserName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:fontFamily="@font/courbd"
            android:text="@string/user_name"
            android:textColor="@color/black"
            android:textSize="18sp"
            android:textStyle="bold" />

        <EditText
            android:id="@+id/editTextUserName"
            android:layout_width="282dp"
            android:layout_height="wrap_content"
            android:layout_marginStart="30dp"
            android:backgroundTint="@color/black"
            android:fontFamily="@font/courbd"
            android:inputType="textPersonName"
            android:paddingBottom="4dp"
            android:singleLine="true"
            android:textColor="@color/black" />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:orientation="horizontal"
        android:paddingStart="20dp"
        android:paddingEnd="20dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        tools:ignore="MissingConstraints">

        <TextView
            android:id="@+id/textViewUserEmail"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:fontFamily="@font/courbd"
            android:text="@string/user_email"
            android:textColor="@color/black"
            android:textSize="18sp"
            android:textStyle="bold" />

        <EditText
            android:id="@+id/editTextUserEmail"
            android:layout_width="282dp"
            android:layout_height="wrap_content"
            android:layout_marginStart="30dp"
            android:backgroundTint="@color/black"
            android:fontFamily="@font/courbd"
            android:inputType="textEmailAddress"
            android:paddingBottom="4dp"
            android:singleLine="true"
            android:textColor="@color/black" />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingStart="20dp"
        android:paddingEnd="20dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/linearLayout1"
        tools:ignore="MissingConstraints">

        <TextView
            android:id="@+id/textViewUserPhone"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:fontFamily="@font/courbd"
            android:text="Phone #:"
            android:textColor="@color/black"
            android:textSize="18sp"
            android:textStyle="bold" />

        <EditText
            android:id="@+id/editTextUserPhone"
            android:layout_width="282dp"
            android:layout_height="wrap_content"
            android:layout_marginStart="10dp"
            android:backgroundTint="@color/black"
            android:fontFamily="@font/courbd"
            android:inputType="phone"
            android:paddingBottom="4dp"
            android:singleLine="true"
            android:textColor="@color/black" />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingStart="20dp"
        android:paddingEnd="20dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/linearLayout2"
        tools:ignore="MissingConstraints">

        <TextView
            android:id="@+id/textViewUserGender"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="15dp"
            android:fontFamily="@font/courbd"
            android:text="@string/user_gender"
            android:textColor="@color/black"
            android:textSize="18sp"
            android:textStyle="bold" />

        <CheckBox
            android:id="@+id/male"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:buttonTint="@color/black"
            android:checked="true"
            android:clickable="false"
            android:focusableInTouchMode="true"
            android:fontFamily="@font/courbd"
            android:text="@string/user_gender_male"
            android:textColor="@color/black" />

        <CheckBox
            android:id="@+id/female"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:buttonTint="@color/black"
            android:checked="false"
            android:clickable="false"
            android:fontFamily="@font/courbd"
            android:text="@string/user_gender_female"
            android:textColor="@color/black" />

        <CheckBox
            android:id="@+id/other"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:buttonTint="@color/black"
            android:checked="false"
            android:clickable="false"
            android:fontFamily="@font/courbd"
            android:text="@string/user_gender_other"
            android:textColor="@color/black" />

    </LinearLayout>

    <androidx.appcompat.widget.AppCompatButton
        android:id="@+id/btnRegisterCustomer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="71dp"
        android:layout_marginBottom="120dp"
        android:background="@drawable/button_style"
        android:text="@string/btn_next"
        android:textAllCaps="false"
        android:textColor="@color/black"
        android:textSize="18sp"
        android:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/linearLayout3" />

</androidx.constraintlayout.widget.ConstraintLayout>

 

//第二个片段

            <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:background="@color/purple_200"
    tools:context=".CustomerRegisterFragment1">
    <ImageView
        android:id="@+id/imageView"
        android:layout_width="131dp"
        android:layout_height="46dp"
        android:src="@drawable/logo"
        android:textAlignment="center"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.18"
        tools:ignore="MissingConstraints"
        android:contentDescription="TODO" />

    <TextView
        android:id="@+id/textViewCustomerPassTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:fontFamily="@font/courbd"
        android:text="@string/c_password"
        android:textColor="@color/black"
        android:textSize="24sp"
        android:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.28"
        tools:ignore="MissingConstraints" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/CustomerRegisterFragment1.linearLayout"
        android:layout_centerVertical="true"
        android:layout_marginBottom="288dp"
        android:orientation="vertical"
        android:paddingStart="20dp"
        android:paddingEnd="20dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textViewCustomerPassTitle"
        tools:ignore="MissingConstraints">

        <EditText
            android:id="@+id/editTextCustomerPassword"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:backgroundTint="#695547"
            android:fontFamily="@font/courbd"
            android:hint="@string/customer_password"
            android:inputType="textPassword"
            android:textColor="@color/black"
            android:textColorHint="#A88973" />

        <EditText
            android:id="@+id/editTextCustomerConfirmPassword"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:backgroundTint="#695547"
            android:fontFamily="@font/courbd"
            android:hint="@string/cconfirm_password"
            android:inputType="textPassword"
            android:textColor="@color/black"
            android:textColorHint="#A88973" />
    </LinearLayout>

    <androidx.appcompat.widget.AppCompatButton
        android:id="@+id/btnRegisterCustomer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="67dp"
        android:layout_marginBottom="123dp"
        android:background="@drawable/button_style"
        android:text="@string/btn_register_client"
        android:textAllCaps="false"
        android:textColor="@color/black"
        android:textSize="18sp"
        android:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.498"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@id/CustomerRegisterFragment1.linearLayout"
        app:layout_constraintVertical_bias="0.229" />


</androidx.constraintlayout.widget.ConstraintLayout> 

标签: javaandroidandroid-fragments

解决方案


  1. 界面; 界面:
public interface FragmentInterface {
    String getName();
    String getEmail();
    String getPassword();
}

分段:

public class FragmentA extend Fragment implements FragmentInterface{}
public class FragmentB extend Fragment implements FragmentInterface{}

xxx活动:

FragmentInterface fia = (FragmentInterface)FragmentA;
FragmentInterface fib = (FragmentInterface)FragmentB;

获取字段:

String name = fia.getName();
String pw = fib.getPassword();
  1. 广播接收器

  2. 全局单例


推荐阅读