Не удается разрешить идентификатор символа - PullRequest
0 голосов
/ 06 апреля 2020

У меня recylcerView вызывает "Заметки", я пытаюсь добавить новое представление recyler, называемое "Назначения", которое будет создано внутри элемента примечания recylerview. Когда я нажимаю на элемент recylerview (заметки), он отправляет меня в ClassworkActivity, в котором к нему добавляется просмотр повторного задания. Поэтому я хочу добавить обзор переработчика назначения как дочерний элемент просмотра переработчика заметок.

Вот что я пробовал:

final AssignmentAdapter assignmentAdapter=new AssignmentAdapter(assignlist,this);
recyclerView.setAdapter(assignmentAdapter);

FloatingActionButton fab = findViewById(R.id.fab);


mCurrentUser = FirebaseAuth.getInstance().getCurrentUser();


String userID = mCurrentUser.getUid();


firebaseDatabase=FirebaseDatabase.getInstance();

databaseReference = firebaseDatabase.getReference().child("Users").child(userID).child("Notes").child(id).child("Assignments");
databaseReference.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

        for(DataSnapshot dataSnapshot1: dataSnapshot.getChildren())
        {
            AssignListdata listdata=dataSnapshot1.getValue(AssignListdata.class);
            assignlist.add(listdata);

        }
        assignmentAdapter.notifyDataSetChanged();

    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {

    }
});

// fab
fab.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {

        startActivity(new Intent(getApplicationContext(), AddAssignmentActivity.class));
    }
});

Но я получаю сообщение об ошибке в этой строке:

databaseReference = firebaseDatabase.getReference().
child("Users").
child(userID).
child("Notes").
child(id).
child("Assignments");

, поскольку я не создал идентификатор переменной: child(id)., который является идентификатором списка заметок. Может кто-нибудь сказать мне, как объявить эту переменную?

Другое дело, что назначения созданный как Notes в NotesActivity, а не в ClassworkActivity!

JSON tree

Кроме того, это ссылка на github моего проекта. Пожалуйста, посмотрите на it: Приложение Notes

Пожалуйста, помогите!

1 Ответ

0 голосов
/ 06 апреля 2020

Когда вы щелкаете по пункту recyclerView в Notes, получите noteID, указывающий, какая позиция нажата.

теперь, когда вы открываете ClassworkActivity, связывайте этот идентификатор с намерением и получайте его в ClassworkActivity onCreate () и при создании AssignmentAdapter используйте этот noteID в качестве идентификатора.

передайте noteId, используя intent как:

Intent myIntent = new Intent(CurrentActivity.this, ClassworkActivity.class); // UPDATE CURRENT ACTIVITY NAME
myIntent.putExtra("noteID", noteID);
startActivity(myIntent);

и получите в ClassworkActivity onCreate () как:

Intent mIntent = getIntent();
int id = mIntent.getIntExtra("noteID", 0);
...