简体   繁体   English

单击按钮将数据从EditText Listview更新到Firebase数据库

[英]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. 可以先在Listview的Edittext中设置名称文本,然后将名称更改为相应的位置项目,然后单击按钮,将Editfield中的每个插入值更新到数据库的相关字段。

1- Download: 1-下载:

FirebaseDatabase database=FirebaseDatabase.getInstance(); FirebaseDatabase database = FirebaseDatabase.getInstance();

DatabaseReference reference=database.getReference(); DatabaseReference参考= 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(); // ========================== 2-解析:HashMap d =(HashMap)dataSnapshot.getValue(); HashMap users=((HashMap) d.get("users")); HashMap users =((((HashMap)d.get(“ users”)));

3- Update ListView/EditText or use users(Hashmap) 3-更新ListView / EditText或使用用户(哈希图)

4- Update: 4-更新

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());
            }
        });

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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