не удалось отобразить значение внутренних дочерних узлов в представлении переработчика - PullRequest
0 голосов
/ 18 мая 2019

перед отрицательным голосованием, пожалуйста, учтите, что я искал везде и не нашел решения, пожалуйста, помогите ..

Structure of Firebase

из приведенной выше структуры.> examId> total_marks, marks_scored, но я не могу получить доступ к узлу результата

я хочу, чтобы значения передавались в программе повторного просмотра Это мой адаптер

public class MarksListAdapter extends RecyclerView.Adapter<MarksListAdapter.MyViewHolder> {

    Context context;
    ArrayList<MarksList> marksListArrayList;


    public MarksListAdapter(Context c, ArrayList<MarksList> p) {
        context = c;
        marksListArrayList = p;
    }

    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        return new MyViewHolder(LayoutInflater.from(context).inflate(R.layout.marks_list, viewGroup, false));
    }

    @Override
    public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, int i) {
        myViewHolder.tvStudentName.setText(marksListArrayList.get(i).getName());
        myViewHolder.tvOutOf_List.setText(marksListArrayList.get(i).getResults().getTotal_marks());
        myViewHolder.etEnterMarks.setText(marksListArrayList.get(i).getResults().getMarks_scored());

POJO класс

public class MarksList {
    String name;

    public MarksList() {
    }

    public MarksList(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }


    private Results Results;

    public com.hitech.hitechacademy.POJO.Results getResults() {
        return Results;
    }
}

public class Results {

    String marks_scored;
    String total_marks;

    public Results() {
    }

    public Results(String marks_scored, String total_marks) {

        this.marks_scored = marks_scored;
        this.total_marks = total_marks;
    }

    public String getMarks_scored() {
        return marks_scored;
    }

    public void setMarks_scored(String marks_scored) {
        this.marks_scored = marks_scored;
    }

    public String getTotal_marks() {
        return total_marks;
    }

    public void setTotal_marks(String total_marks) {
        this.total_marks = total_marks;
    }

}

оба являются отдельными java-классами

Это задание по рециркуляции

DatabaseReference examRef = firebaseDatabase.getReference().child("Batches").child(batchNameValue);

examRef.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        String examTitle;
        String studentName;

        specificStudent.clear();
        resultsArrayList.clear();
        for (DataSnapshot studentResult : dataSnapshot.getChildren()) {
            examTitle = (String) studentResult.child("Results").child(examKeyValue).child("exam_name").getValue();
            Log.d("TAG_Full", examTitle + "" + examFullName);
            if (examTitle != null && examTitle.equals(examFullName)) {

                MarksList marksList = studentResult.getValue(MarksList.class);


                //studentName = (String) studentResult.child("name").getValue();
                specificStudent.add(marksList);

                Log.d("SpecificStudent", specificStudent.toString() + resultsArrayList.toString());
            } else {
                //code for 1 exam and no students
            }
        }
        specificStudent.toString();
        marksListAdapter = new MarksListAdapter(LoadedExam.this,specificStudent);
        marksRecyclerView.setAdapter(marksListAdapter);
        marksListAdapter.notifyDataSetChanged();
    }

Я не получаю никаких ошибок, но только имя студента выбирается Пожалуйста, помогите

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...