【问题标题】:retrieve and update data with toggle button android (firebase)使用切换按钮 android (firebase) 检索和更新数据
【发布时间】:2019-03-05 09:14:19
【问题描述】:

我想使用 Android 应用更改 Firebase 数据库中的数据。所以我希望它在打开时为真,在我关闭时为假。 (0-states-001-True/False)所以当我按下切换按钮时,我想更新数据(true/false))。我分享了下面的代码。如何更新数据?这些代码不起作用,数据是错误的。 database application

DatabaseReference dbProducts1 = FirebaseDatabase.getInstance().getReference("0").child("states").child("001");

dbProducts1.addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot1) {

                    if(dataSnapshot1.exists()){

                        for(DataSnapshot productSnapshot : dataSnapshot1.getChildren()){
                            Product1 p1 = productSnapshot.getValue(Product1.class);
                            productList.add(p1);
                        }

                        adapter = new ProductsAdapter(MainActivity.this, productList);
                        recyclerView.setAdapter(adapter);

                    }

                }

public class Product1 extends Product {

            private boolean states;

            public Product1(){

            }

            public Product1(boolean states) {

                this.states = states;
            }


            public boolean getStates() {
                return states;
            }

        }

         public void onBindViewHolder(ProductViewHolder holder, int position) {
                Product product = productList.get(position);

                // holder.textViewID.setText(String.valueOf(product.getid()));
                holder.viewStatus.setText(String.valueOf(product.getStates()));

        }


class ProductViewHolder extends RecyclerView.ViewHolder {

                ToggleButton viewStatus;
                public ProductViewHolder(View itemView) {
                    super(itemView);

                    viewStatus = itemView.findViewById(R.id.toggle_Data);

        }
        }

【问题讨论】:

    标签: android database firebase togglebutton


    【解决方案1】:

    当开关状态改变时尝试更新

    DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference();
    
    DatabaseReference ref = mDatabase.child("states").child("001")
    
    mySwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            Map<String, Object> newStatus = new HashMap<>();
            childUpdates.put("states", isChecked)
    
            ref.update(newStatus)
        }
    });
    

    【讨论】:

      【解决方案2】:
      toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                  @Override
                  public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
          FirebaseDatabase database = FirebaseDatabase.getInstance();
          DatabaseReference myRef = database.getReference("status/001");
      if(isChecked){
      
          myRef.setValue(true);
      
      }else{
          myRef.setValue(false);
      
      }
                  }
              });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-04-16
        • 1970-01-01
        • 2016-06-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多