有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在RecyclerView中检索值我做了很多尝试,但在Android中将数据推送到数据库后,它从Firebase生成的ID中检索空值

如何在RecyclerView中检索值我做了很多尝试,但在数据库中推送数据后,Firebase从生成的id中检索空值,如果我不使用此方法,则直接“推送”存储在第二个id中的数据,并在Android和log cat中检索良好:

W/ClassMapper: No setter/field for -L9VWgoCymRWj9zbgK5H [image for database stracture][1]

这是我的代码:

public class TasksListActivity extends AppCompatActivity {

    RecyclerView recyclerView;
    TaskAdapter adapter;
    List<Tasks>tasksList;
    FirebaseDatabase FDB;
    DatabaseReference DBR;
    private FirebaseAuth mAuth;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tasks_list);

        recyclerView=(RecyclerView) findViewById(R.id.testingss);
        RecyclerView.LayoutManager manager=new LinearLayoutManager(getApplicationContext());
        recyclerView.setLayoutManager(manager);
        recyclerView.setHasFixedSize(true);
        mAuth = FirebaseAuth.getInstance();



        tasksList=new ArrayList<>();
        adapter=new TaskAdapter(tasksList);

        FDB=FirebaseDatabase.getInstance();

        GetDataFirebase();
    }

    void GetDataFirebase (){
        FirebaseUser currentUser = mAuth.getCurrentUser();
        final String currentid=currentUser.getUid();

        DBR=FDB.getReference("tasks").child(currentid);

        DBR.addChildEventListener(new ChildEventListener() {
            @Override
            public void onChildAdded(DataSnapshot dataSnapshot, String s) {
                Tasks data=dataSnapshot.getValue(Tasks.class);

                //Toast.makeText(getApplicationContext(),tas,Toast.LENGTH_SHORT).show();
                tasksList.add(data);
                adapter.notifyDataSetChanged();
                recyclerView.setAdapter(adapter);
            }

            @Override
            public void onChildChanged(DataSnapshot dataSnapshot, String s) {

            }

            @Override
            public void onChildRemoved(DataSnapshot dataSnapshot) {

            }

            @Override
            public void onChildMoved(DataSnapshot dataSnapshot, String s) {

            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });

    }



    public  class TaskAdapter extends RecyclerView.Adapter<TaskAdapter.TaskViewHolder>{

        List<Tasks> data=new ArrayList<>();

        public TaskAdapter(List<Tasks> tasks){
            this.data=tasks;


        }




        @Override
        public TaskAdapter.TaskViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.taskslistitem,parent,false);

            return new TaskViewHolder(view);
        }

        @Override
        public void onBindViewHolder(TaskAdapter.TaskViewHolder holder, int position) {

            Tasks tasks=data.get(position);

            holder.taskName.setText(tasks.getmTaskname());
            Toast.makeText(getApplicationContext(),tasks.getmTaskname(),Toast.LENGTH_SHORT).show();
            //Toast.makeText(getApplication(),tasks.getmTaskname(),Toast.LENGTH_SHORT).show();
           // Toast.makeText(getApplicationContext(),holder.taskName.getText(),Toast.LENGTH_SHORT).show();


        }

        @Override
        public int getItemCount() {
            return data.size();
        }

        public class TaskViewHolder extends RecyclerView.ViewHolder {

            TextView taskName;

            public TaskViewHolder(View itemView) {
                super(itemView);
                taskName=(TextView) itemView.findViewById(R.id.tasksnameId);
            }
        }
    }


}

关于任务模型的课程

公开课任务{

private String mMemberEmail;
private String mTaskname;
private String mTaskDsc;
private String mTaskDeadline;


public Tasks() {
}

public Tasks(String mMemberEmail, String mTaskname, String mTaskDsc, String mTaskDeadline) {
    this.mMemberEmail = mMemberEmail;
    this.mTaskname = mTaskname;
    this.mTaskDsc = mTaskDsc;
    this.mTaskDeadline = mTaskDeadline;
}

public String getmMemberEmail() {
    return mMemberEmail;
}

public void setmMemberEmail(String mMemberEmail) {
    this.mMemberEmail = mMemberEmail;
}

public String getmTaskname() {
    return mTaskname;
}

public void setmTaskname(String mTaskname) {
    this.mTaskname = mTaskname;
}

public String getmTaskDsc() {
    return mTaskDsc;
}

public void setmTaskDsc(String mTaskDsc) {
    this.mTaskDsc = mTaskDsc;
}

public String getmTaskDeadline() {
    return mTaskDeadline;
}

public void setmTaskDeadline(String mTaskDeadline) {
    this.mTaskDeadline = mTaskDeadline;
}

}

                final Tasks tasks=new Tasks(mMemberEmail,mTasksName,mTaskDsc,mTaskDeadline);

                mUserDatabase.child("tasks").child(current_id).child(id).push().setValue(tasks).addOnCompleteListener(new OnCompleteListener<Void>() {
                    @Override
                    public void onComplete(@NonNull Task<Void> task) {

                        mAuth = FirebaseAuth.getInstance();
                        user = mAuth.getCurrentUser();

                        String current_id = user.getUid();

                        Tasks tasks=new Tasks(mMemberEmail,mTasksName,mTaskDsc,mTaskDeadline);

                        String id = child.getKey();

                        mUserDatabase.child("tasks").child(id).child(current_id).push().setValue(tasks);

                    }
                });

            }

共 (0) 个答案