当前位置: 首页 > 知识库问答 >
问题:

如何在单击按钮时将多个复选框值保存到Firebase

金英华
2023-03-14

这是HTML文件。我在将多个复选框值保存到firebase时遇到问题。我想在点击按钮并转到其他活动时将选中的复选框文本存储到Firebase。

    <android.support.v4.widget.NestedScrollView
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:layout_marginTop="50dp">

            <FrameLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <ImageView
                    android:id="@+id/image"
                    android:layout_width="match_parent"
                    android:layout_height="180dp"
                    android:background="#FCFAFA"
                    android:scaleType="centerCrop" />

                <ImageView
                    android:id="@+id/camera"
                    android:layout_width="48dp"
                    android:layout_height="48dp"
                    android:layout_gravity="right|bottom"
                    android:layout_marginBottom="24dp"
                    android:layout_marginRight="8dp"
                    android:layout_marginTop="8dp"
                    android:background="@drawable/button_bg_round"
                    android:padding="8dp"
                    android:tint="#858585"
                    app:srcCompat="@drawable/ic_camera"
                    tools:ignore="VectorDrawableCompat" />
            </FrameLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical"
                android:paddingBottom="12dp"
                android:paddingLeft="12dp"
                android:paddingRight="12dp"
                android:paddingTop="4dp">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="12dp"
                    android:text="Place "
                    android:textColor="#000"
                    android:textSize="18sp"
                    android:textStyle="bold" />

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="4dp"
                    android:gravity="center_vertical"
                    android:orientation="horizontal">

                    <EditText
                        android:id="@+id/placeName"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:background="@color/transparent"
                        android:drawablePadding="8dp"
                        android:gravity="center_vertical"
                        android:minHeight="40dp"
                        android:padding="8dp" />

                </LinearLayout>

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="24dp"
                    android:text="Street"
                    android:textColor="#000"
                    android:textSize="18sp"
                    android:textStyle="bold" />

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="4dp"
                    android:gravity="center_vertical"
                    android:orientation="horizontal">

                    <EditText
                        android:id="@+id/streetName"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:background="@color/transparent"
                        android:drawablePadding="8dp"
                        android:gravity="center_vertical"
                        android:minHeight="40dp"
                        android:padding="8dp" />

                </LinearLayout>

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="24dp"
                    android:text="Postcode"
                    android:textColor="#000"
                    android:textSize="18sp"
                    android:textStyle="bold" />

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="4dp"
                    android:gravity="center_vertical"
                    android:orientation="horizontal">

                    <EditText
                        android:id="@+id/postcodeName"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:background="@color/transparent"
                        android:drawablePadding="8dp"
                        android:gravity="center_vertical"
                        android:minHeight="40dp"
                        android:padding="8dp" />

                </LinearLayout>

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="24dp"
                    android:text="City"
                    android:textColor="#000"
                    android:textSize="18sp"
                    android:textStyle="bold" />

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="4dp"
                    android:gravity="center_vertical"
                    android:orientation="horizontal">

                    <EditText
                        android:id="@+id/cityName"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:background="@color/transparent"
                        android:drawablePadding="8dp"
                        android:gravity="center_vertical"
                        android:minHeight="40dp"
                        android:padding="8dp" />

                </LinearLayout>

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="24dp"
                    android:text="Facility"
                    android:textColor="#000"
                    android:textSize="18sp"
                    android:textStyle="bold" />

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="8dp"
                    android:layout_marginRight="8dp"
                    android:layout_marginTop="4dp"
                    android:orientation="horizontal">

                    <CheckBox
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:id="@+id/facility_ramp"
                        android:text="@string/ramp"/>

                    <EditText
                        android:id="@+id/desc_ramp"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:hint="Description"
                        android:layout_marginLeft="80dp"/>

                </LinearLayout>

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="8dp"
                    android:layout_marginRight="8dp"
                    android:layout_marginTop="4dp"
                    android:orientation="horizontal">

                    <CheckBox
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:id="@+id/facility_lift"
                        android:text="@string/disabled_lift"/>

                    <EditText
                        android:id="@+id/desc_lift"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:hint="Description"
                        android:layout_marginLeft="38dp"/>

                </LinearLayout>

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="8dp"
                    android:layout_marginRight="8dp"
                    android:layout_marginTop="4dp"
                    android:orientation="horizontal">

                    <CheckBox
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:id="@+id/facility_counter"
                        android:text="@string/counter"/>

                    <EditText
                        android:id="@+id/desc_counter"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:hint="Description"
                        android:layout_marginLeft="35dp"/>

                </LinearLayout>

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="8dp"
                    android:layout_marginRight="8dp"
                    android:layout_marginTop="4dp"
                    android:orientation="horizontal">

                    <CheckBox
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:id="@+id/facility_toilet"
                        android:text="@string/toilet"/>

                    <EditText
                        android:id="@+id/desc_toilet"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:hint="Description"
                        android:layout_marginLeft="10dp"/>

                </LinearLayout>

            </LinearLayout>

            <Button
                android:id="@+id/addBtn"
                android:background="@drawable/searchbutton"
                android:layout_width="300dp"
                android:layout_height="wrap_content"
                android:text="CREATE PLACE"
                android:layout_gravity="center_horizontal"
                android:layout_marginTop="10dp"
                android:layout_marginBottom="10dp"
                />

            <EditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="10dp"/>

        </LinearLayout>

    </android.support.v4.widget.NestedScrollView>

这是java代码。我还没有将复选框项/dat保存到firebase中,因为我不知道在选中复选框后存储设施描述的java代码。一定要帮忙,谢谢

    //declare
    mAddPlace = (EditText) findViewById(R.id.placeName);
    mAddStreet = (EditText) findViewById(R.id.streetName);
    mAddPostcode = (EditText) findViewById(R.id.postcodeName);
    mAddCity = (EditText) findViewById(R.id.cityName);
    mbtnAdd = (Button) findViewById(R.id.addBtn);

    mRampCheckBox = findViewById(R.id.facility_ramp);
    mCounterCheckBox = findViewById(R.id.facility_counter);
    mLiftCheckBox = findViewById(R.id.facility_lift);
    mToiletCheckBox = findViewById(R.id.facility_toilet);

    descRamp = findViewById(R.id.desc_ramp);
    descLift = findViewById(R.id.desc_lift);
    descCounter = findViewById(R.id.desc_counter);
    descToilet = findViewById(R.id.desc_toilet);


    mRampCheckBox.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (((CheckBox) v).isChecked()) {
                descRamp.setEnabled(true);

            }
            else
                descRamp.setEnabled(false);

        }
    });

    mLiftCheckBox.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (((CheckBox) v).isChecked()) {
                descLift.setEnabled(true);
            }
            else
                descLift.setEnabled(false);

        }
    });

    mCounterCheckBox.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (((CheckBox) v).isChecked()) {
                descCounter.setEnabled(true);
            }
            else
                descCounter.setEnabled(false);

        }
    });

    mToiletCheckBox.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (((CheckBox) v).isChecked()) {
                descToilet.setEnabled(true);
            }
            else
                descToilet.setEnabled(false);

        }
    });

共有1个答案

海典
2023-03-14
    private boolean mRamp , mLift , mCounter , mToilet ;   
     private DatabaseReference UserRef;
     private FirebaseAuth mAuth;
    
    
     @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            mAuth = FirebaseAuth.getInstance();
            UserRef = FirebaseDatabase.getInstance().getReference().child("Users");
        
    
    
    mRampCheckBox.setOnClickListener(new View.OnClickListener() {
    
            @Override
            public void onClick(View v) {
                if (((CheckBox) v).isChecked()) {
                    descRamp.setEnabled(true);
                    mRamp = true;
    
                }
                else
                    descRamp.setEnabled(false);
                    mRamp = false;
    
    
            }
        });
    
        mLiftCheckBox.setOnClickListener(new View.OnClickListener() {
    
            @Override
            public void onClick(View v) {
                if (((CheckBox) v).isChecked()) {
                    descLift.setEnabled(true);
                    mLift = true;
                }
                else
                    descLift.setEnabled(false);
                    mLift  = false;
    
            }
        });
    
        mCounterCheckBox.setOnClickListener(new View.OnClickListener() {
    
            @Override
            public void onClick(View v) {
                if (((CheckBox) v).isChecked()) {
                    descCounter.setEnabled(true);
                    mCounter = true;
                }
                else
                    descCounter.setEnabled(false);
                    mCounter = false;
    
            }
        });
    
        mToiletCheckBox.setOnClickListener(new View.OnClickListener() {
    
            @Override
            public void onClick(View v) {
                if (((CheckBox) v).isChecked()) {
                    descToilet.setEnabled(true);
                    mToilet = true;
                }
                else
                    descToilet.setEnabled(false);
                    mToilet = false;
    
            }
        });
    

}
    
    
    
    private void uploadData()
    {
      HashMap userMap = new HashMap();
            userMap.put("mRamp" ,mRamp);
            userMap.put("mLift" ,mLift);
            userMap.put("mCounter" ,mCounter);
            userMap.put("mToilet" ,mToilet);
            
    
            UserRef.updateChildren(userMap).addOnCompleteListener(new OnCompleteListener()
            {
                @Override
                public void onComplete(@NonNull Task task)
                {
                    if(task.isSuccessful())
                    {
                      
                        Toast.makeText(this, "Data Saved", Toast.LENGTH_SHORT).show();
                    }
                    else
                    {
                       
                        Toast.makeText(this, "Error", Toast.LENGTH_SHORT).show();
                    }
                }
            });
    }

在想要上传数据的地方调用此方法uploadData();

 类似资料:
  • 问题内容: 当我选中复选框时,我需要一些js / ajax / jquery脚本将数据动态保存到数据库中。复选框或当前加载到记录旁边的复选框,并根据是否选中变量来更改数据库中的变量。但是我必须在选择一个页面以将其保存到数据库后重新加载页面。我可以做其他所有事情,但了解如何对此实现ajax,因此我不必每次都提交查询并刷新页面。任何帮助是极大的赞赏。 问题答案: 使用jQuery来做,一个简单的例子可

  • 我有个问题。我想从复选框中获取复选值,并将它们添加到php数组中,但我对如何做到这一点没有任何线索。我可以用javascript做,但我想要一个php数组,我不知道如何将js数组转换为php数组。我将在下一个php文件中使用数组,并用这些值从数据库中搜索行。如果有人建议我怎么做,我会很感激,因为我没有任何线索。 这就是我如何使复选框,然后单击按钮,我移动到下一个文件

  • 下面的代码是从test.jsp页面获取数据的联机测试。现在,当用户单击一个单选按钮并单击next时,它将存储该单选按钮的值,并显示该单选按钮的next值。在这里,单选按钮正常工作,但我不能存储每个单选按钮的值单击。 上面的代码将hidden字段的值传递给test.jsp,以便带来该值。

  • 主要内容:Checkbutton复选框控件单选框按钮控件(Radiobutton),同样允许用户选择具体的选项值,不过与 Listbox 相比,单选按钮控件仅允许用户选择单一的选项值,各个选项值之间是互斥的关系,因此只有一个选项可以被用户选择。 Radiobutton 控件通常都是成组出现的,所有控件都使用相同的变量。Radiobutton 可以包含文本或图像,每一个按钮都可以与一个 Python 函数相关联。当按钮被按下时,对应的函数会

  • 下面的代码是我的按钮操作的一部分。Jtable contain last row is复选框。单击“保存”按钮时,所选行必须从表行中删除 执行的操作代码

  • 我正在做一个实验,在这里我给参与者呈现刺激,并在每次刺激后问他们问题。我有四个问题,每一个在一个单独的框架。每个问题的答案是从七个RadioButton中选择一个。我有一个按钮也在一个单独的框架,用于保存选择的值和显示下一个刺激。这里的问题是,如果参与者忘记选择radiobutton之一,则该按钮的值将保存为0,我希望避免这种情况。我试图设定一个条件,仅在所有radiobuttons都被选中的情况