E / RecyclerView: адаптер не подключен; пропуская макет с FirestoreRecycle - PullRequest
1 голос
/ 03 мая 2020

Я пытаюсь создать список RecyclerView с параметром FirestoreRecycle

Когда я выбираю элемент счетчика, но список не отображается при выборе элемента

    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.fragment_penilaian,container,false);
        firebase = FirebaseFirestore.getInstance();
        getfdb();
        final LinearLayoutManager layoutManager = new LinearLayoutManager(this.getActivity());
        layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
        mFirestorelist.setLayoutManager(layoutManager);
        return v;
    }

    private void setuprecycleview() {
        Query query = firebase.collection("kelas").document(documentid).collection("siswa").orderBy("nama", Query.Direction.ASCENDING);
        FirestoreRecyclerOptions<kelas> options = new FirestoreRecyclerOptions.Builder<kelas>()
                .setQuery(query, kelas.class).build();
        adapter = new KelasAdapter(options);
        mFirestorelist.setHasFixedSize(true);
        mFirestorelist.setAdapter(adapter);
    }
    public void getfdb(){
     firebase.collection("kelas").whereEqualTo("email",email_txt)
             .addSnapshotListener(new EventListener<QuerySnapshot>() {
                 @Override
                 public void onEvent(@Nullable QuerySnapshot queryDocumentSnapshots, @Nullable FirebaseFirestoreException e) {
                      if(e != null){
                          Log.w(TAG, "Listen failed.", e);
                          return;
                      }
                      for(DocumentSnapshot documentSnapshot:queryDocumentSnapshots){
                          arraykelas.add(documentSnapshot.get("kelas").toString());
                      }
                      kelasarrayadapter = new ArrayAdapter(getContext(),android.R.layout.simple_spinner_dropdown_item,arraykelas);
                      kelasspinner.setAdapter(kelasarrayadapter);
                      kelasspinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                         @Override
                         public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                            String find = kelasspinner.getSelectedItem().toString();
                            firebase.collection("kelas").whereEqualTo("kelas",find).get()
                                    .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                                        @Override
                                        public void onComplete(@NonNull Task<QuerySnapshot> task) {
                                          if(task.isSuccessful()){
                                           if(task.getResult().size()>0){
                                               for(QueryDocumentSnapshot documentSnapshot : task.getResult()){
                                                   documentid = documentSnapshot.getId();
                                               }
                                               Log.d(TAG,documentid);
                                               setuprecycleview();                                               
                                          }
                                          }
                                        }
                                    });
                         }
                         @Override
                         public void onNothingSelected(AdapterView<?> parent) {}
                     });
                 }
             });
    }
}

Это мой адаптер

    @NonNull
    @Override
    public kelasHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.kelas_nilai,parent,false);
        return new kelasHolder(v);
    }

Я сделал его адаптером .startlistening() в OnStart() и OnStop(), но в нем указано нулевое предпочтение.

  • Я удаляю некоторый код, где я думаю, что don не нужно решать мой код

Ответы [ 2 ]

0 голосов
/ 03 мая 2020
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment_penilaian,container,false);
    firebase = FirebaseFirestore.getInstance();

    final LinearLayoutManager layoutManager = new LinearLayoutManager(this.getActivity());
    layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
    mFirestorelist.setLayoutManager(layoutManager);

    getfdb();

    return v;
}

Просто используйте выше фрагмент

0 голосов
/ 03 мая 2020

Добавьте startListening() перед установкой адаптера на RecyclerView, как показано ниже:

private void setuprecycleview() {
    Query query = firebase.collection("kelas").document(documentid).collection("siswa").orderBy("nama", Query.Direction.ASCENDING);
    FirestoreRecyclerOptions<kelas> options = new FirestoreRecyclerOptions.Builder<kelas>()
            .setQuery(query, kelas.class).build();
    adapter = new KelasAdapter(options);
    mFirestorelist.setHasFixedSize(true);
    adapter.startListening();
    mFirestorelist.setAdapter(adapter);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...