将表单数据发送到上一个活动并继续添加并保存在RecyclerView

时间:2018-06-08 08:59:58

标签: android android-fragments android-intent android-recyclerview

所以我有ActivityCardView中显示用户详细信息,CardView下方是RecyclerView,其中会收集并添加表单详细信息。 FloatingActionButton中有Activity(FAB)添加图标。当用户使用FAB点击Intent时,我会转到下一个Activity,其中有一个表单可以获取用户旅行详细信息,FAB点击后会发送数据收回到生成表单活动的上一个Activity

当用户第一次访问RecyclerView并填充列表时,我希望Activity为空,因为用户会继续以其他形式添加旅行详细信息。问题是我不知道如何在第一次用户访问时删除RecyclerView,然后在用户填写其他表单时显示。第二个问题是,当我填写表单时,我发送回上一个Activity的详细信息不会添加到RecyclerView。我想因为每当我将意图重新回到之前的Activity时,就会生成Activity的新实例。

第一个layout

Activity
  <RelativeLayout xmlns:tools="http://schemas.android.com/tools"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/reslayout"
    >
   <android.support.v7.widget.CardView
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:id="@+id/officer_cardView"
    >
     <RelativeLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:id="@+id/expand_officerInfo"
       android:layout_below="@id/nameHeader_layout">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/summary_contact_head"
        android:layout_marginStart="12dp"
        android:textSize="16sp"
        android:textStyle="bold"
        android:text="Contact No"/>
      <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:id="@+id/summary_contact"
       android:layout_marginStart="16dp"
       android:textSize="16sp"
       android:layout_toEndOf="@id/summary_contact_head"
       android:text="9173548223"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/summary_dept_head"
        android:layout_marginTop="8dp"
        android:layout_marginStart="12dp"
        android:layout_below="@id/summary_contact_head"
        android:textSize="16sp"
        android:textStyle="bold"
        android:text="Dept"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/summary_dept"
        android:layout_marginTop="8dp"
        android:layout_marginStart="16dp"
        android:layout_below="@id/summary_contact"
        android:textSize="16sp"
        android:layout_toEndOf="@id/summary_contact_head"
        android:text="Inform Syst Dept. Technical"/>

   </RelativeLayout>
  </android.support.v7.widget.CardView>

   <android.support.v7.widget.RecyclerView
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:id="@+id/ti_created_recyclerview"
       android:layout_below="@id/officer_cardView"
       android:layout_marginTop="12dp"
       />

  <android.support.design.widget.FloatingActionButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_outline_add_24px"
    android:id="@+id/add_fab"
    android:layout_alignParentEnd="true"
    android:layout_marginEnd="16dp"
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="22dp"
    />
  </RelativeLayout>

以下是另一个layout的{​​{1}},其中包含用户填写

的表单
activity

流程是这两种活动之间的一种循环。 <RelativeLayout 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" tools:context=".addTI_Form"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/form_header_cardView" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/head_from" android:layout_marginTop="10dp" android:layout_marginStart="12dp" android:textSize="20sp" android:textColor="#000000" android:text="From"/> <Spinner android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="5dp" android:layout_marginStart="16dp" android:layout_marginEnd="60dp" android:id="@+id/from_spinner" android:popupElevation="3dp" android:elevation="3dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/head_to" android:layout_marginTop="10dp" android:layout_marginStart="12dp" android:textSize="20sp" android:textColor="#000000" android:text="To"/> <Spinner android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="5dp" android:layout_marginStart="16dp" android:layout_marginEnd="60dp" android:id="@+id/to_spinner" android:popupElevation="3dp" android:elevation="3dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/head_travelmode" android:layout_marginTop="10dp" android:layout_marginStart="12dp" android:textSize="20sp" android:textColor="#000000" android:text="Travel Mode"/> <Spinner android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="5dp" android:layout_marginStart="16dp" android:layout_marginEnd="60dp" android:id="@+id/travelmode_spinner" android:popupElevation="3dp" android:elevation="3dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/head_deptdate" android:layout_marginTop="10dp" android:layout_marginStart="12dp" android:textSize="20sp" android:textColor="#000000" android:text="Departure Date"/> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="12dp" android:id="@+id/datedept" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="22dp" android:text="set" android:id="@+id/setbtn"/> </LinearLayout> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/head_preftime" android:layout_marginTop="10dp" android:layout_marginStart="12dp" android:textSize="20sp" android:textColor="#000000" android:text="Pref. Time"/> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginTop="10dp"> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="12dp" android:id="@+id/timedept" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="22dp" android:text="set" android:id="@+id/setbtn1"/> </LinearLayout> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/head_purpose" android:layout_marginTop="10dp" android:layout_marginStart="12dp" android:textSize="20sp" android:textColor="#000000" android:text="Purpose"/> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="12dp" android:layout_marginEnd="60dp" android:id="@+id/purpose"/> </LinearLayout> <android.support.design.widget.FloatingActionButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentEnd="true" android:layout_marginEnd="20dp" android:layout_marginBottom="20dp" android:src="@drawable/ic_baseline_done_24px" android:id="@+id/submit_fab" /> </RelativeLayout> 点击后的Activity {}会在表格中开始第二个FAB,一旦用户完成表单并点击activity,我们就会返回上一个submit_fab需要将表单详细信息添加到activity,以便还显示以前添加的详细信息。

注意:

我正在考虑的解决方案是我应创建3 RecyclerView,其中一个fragmentsCardview,第二个FABCardview RecyclerView和第三个一个具有表单和FAB,并使用接口将数据从第三个FAB传递到第二个fragment。如果有人可以指导我解决这个问题,那就太好了。

我已经尝试了startActivityForResult()解决方案,它没有用。

0 个答案:

没有答案