从firebase中的listview更新子项

时间:2017-12-30 15:32:25

标签: android firebase firebase-realtime-database

我正在尝试通过LongPress更新Listview中的数据。一切都很好。但是那部分没什么问题。

   private boolean UpdateB(String id , String tp){

        databaseBazars = FirebaseDatabase.getInstance().getReference("BazarList").child(id);
        Bazar bz= new Bazar(id,tp); // this line showing error.
        databaseBazars.setValue(bz);
        return  true;
    }

这是长按警告对话框窗口代码:

private void showupdatedialog(final String bid, final String cost, String da) {

        AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
        LayoutInflater inflater = getLayoutInflater();
        final View dialogview = inflater.inflate(R.layout.updatedialogue, null);
        dialogBuilder.setView(dialogview);

        final EditText editText = (EditText) dialogview.findViewById(R.id.updatecost);
        final Button buttonUpdate = (Button) findViewById(R.id.btnupdate);
        dialogBuilder.setTitle("Udating Cost of Date " + da);
        final AlertDialog alertDialog = dialogBuilder.create();
        alertDialog.show();

        buttonUpdate.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String et = editText.getText().toString().trim();

                if (TextUtils.isEmpty(et)) {
                    editText.setError("Data Required");
                    return;
                }
                UpdateB(bid,et);    

            }
        });
    }

并且有onlongpress列表代码:

   listViewBazars.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
       @Override
       public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
           Bazar bazar = bazarList.get(i);

           showupdatedialog(bazar.getBid(),bazar.getCost(),bazar.getDate());
           return false;
       }
   });

有谁可以说我在UpdateB部分做错了什么?或者你更好地建议我如何更新一个孩子。

数据库图片issue #57,我只是想更新费用部分。

1 个答案:

答案 0 :(得分:0)

更新执行此操作:

  private boolean UpdateB(String id , String tp){
    databaseBazars = FirebaseDatabase.getInstance().getReference("BazarList").child(id);
    databaseBazars.child("your_child_name_here").setValue(bz);
    databaseBazars.child("your_child_name_here1").setValue(ids);
    return true;
}

如果您的数据库是这样的话,则完成上述操作:

BazarList
     id
       your_child_name_here: somewords
       your_chil_name_here1: somewords

这样做每个孩子都会自行更新。