如何在Android设备上

问题描述:

我试图当用户点击一个按钮如何在Android设备上

这里只更新场火力地堡数据库更新只有特定的字段是database

image

我需要的时候更新report_status用户点击一个按钮

b1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
     report_value=Integer.parseInt(arrayforreport.get(posi)); 
      report_value++; 
     databaseReference.addValueEventListener(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 
       //i need to update report_status by id 
      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 

      } 
     }); 

     } 
    }); 

addValueEventListener是检索值,你不需要它来设置值。

首先从DatabaseReference获得密钥,然后使用setValue更改该值。

b1.setOnClickListener(new View.OnClickListener() { 
    @Override 
     public void onClick(View v) { 
      report_value=Integer.parseInt(arrayforreport.get(posi)); 
      report_value++; 

      DatabaseReference databaseReference = adapter.getRef(position); 
      String key = databaseReference.getKey(); 

      databaseReference.child("type").child("Whatsapp").child("Shopping Deals").child(key).child("report_status").setValue(report_status); 

     } 
    }); 
+0

adapter.getRef(现在的位置)这是什么立场可以ü请解释一下..是该适配器变量属于阵列适配器? beacuse亚姆面临的问题,以获得关键..其中用户点击列表项目 –

+0

你面临的问题是什么? –

+0

我无法获得用户选择字段的ID –

为了更新您的火力地堡数据库中的值没有必要附加一个监听器,当你需要读取数据时,才需要。因此,要更新特定节点,您只需直接在databaseReference对象上使用setValue()方法。

所以假设type节点是你的火力地堡数据库的直接孩子,请用下面的代码行:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); 
rootRef.child("type") 
    .child("Whatsapp") 
    .child("Shopping Deals") 
    .child(shoppingDealId) 
    .child("report_status") 
    .setValue("newValue"); 

在这shoppingDealId是一个特殊的购物交易的ID。您可以使用下面的代码行得到这个ID:

String key = ref.push().getKey();