简体   繁体   中英

Update data from EditText Listview to firebase database on button click

I have database like this

在此处输入图片说明

It is possible to first set text of name in Edittext which is in Listview and then change the name to corresponding position items and on button click each inserted value in Editfield is updated to the database to related field.

1- Download:

FirebaseDatabase database=FirebaseDatabase.getInstance();

DatabaseReference reference=database.getReference();

reference.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        try {

//parse data snapshot in another thread.

        }catch (Exception e){






        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {






    }
});

//=========================== 2- Parse: HashMap d = (HashMap) dataSnapshot.getValue(); HashMap users=((HashMap) d.get("users"));

3- Update ListView/EditText or use users(Hashmap)

4- Update:

String nameString= nameEditText.getText().toString();

FirebaseDatabase database = FirebaseDatabase.getInstance();

// getting database reference for the user that needs to be updated.

DatabaseReference  databaseReference = database.getReference().child("users").child(userId);

Map<String, Object> taskMap = new HashMap<String, Object>();
        taskMap.put("name", nameString);

        databaseReference.updateChildren(taskMap).addOnCompleteListener(new OnCompleteListener<Void>() {
            @Override
            public void onComplete(@NonNull Task<Void> task) {
                Log.d("", "task is: " + task);
                if(task.isSuccessful()){
                    Toast.makeText(getActivity(),"Commit is successfull", Toast.LENGTH_LONG).show();
                }else{

                    Toast.makeText(getActivity(),"Commit is failed", Toast.LENGTH_LONG).show();

                }

            }
        });
        databaseReference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

                Object value = dataSnapshot.getValue();
                Log.d("", "Value is: " + value);
            }

            @Override
            public void onCancelled(DatabaseError error) {
                // Failed to read value
                Log.w(TAG, "Failed to save value.", error.toException());
            }
        });

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM