Por que não é o meu fragmento não pode exibir dados de recyclerview?

Ramu:

Antes de postar aqui, passei um tempo considerável para descobrir sozinho, eu ter removido vários erros embora. Estou desenvolvendo um pouco notesapp, evrything bem trabalhou até que eu usei fragmentos em meu aplicativo que contém um problema view.The reciclador é que eu não pode passar os dados recuperados do banco de dados para adaptador recyclerview.

o erro diz "Tentativa de chamar o método virtual 'vazio com.example.diary.RecyclerAdapter.setdata (java.util.List)' em uma referência nula objeto"

i ter verificado que os dados não está vazio, iam confuso Por que recebo um erro de ponteiro nulo.

códigos relevantes são postados abaixo.

fragment.java

 @Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    view = inflater.inflate(R.layout.fragment_recents, container, false);
    RecyclerAdapter adapter;
    db = NotesDatabase.createdb(getContext());

    adapter = new RecyclerAdapter(numofitems); 
     retrievetasks();
    layoutManager = new LinearLayoutManager(getActivity());
    binding = DataBindingUtil.setContentView(getActivity(), R.layout.fragment_recents);
    binding.recyclerView.setLayoutManager(layoutManager);
    binding.recyclerView.setAdapter(adapter);
    Log.d("adapeter", "has set");
    return view;
}

public void retrievetasks() {
    try {
        LiveData<List<NotesEntry>> notesEntries = db.Dao().loadalltasks();
        notesEntries.observe(this, new Observer<List<NotesEntry>>() {
            @Override
            public void onChanged(List<NotesEntry> notesEntries) {
                notes = notesEntries;
                Log.d("sizeforall", String.valueOf(notesEntries.size()));
                adapter.setdata(notesEntries); //this is where the error occures }
             });

'adapter.setdata (notesEntries); // Isto é onde a occures erro

adapter.java

 public void setdata(List<NotesEntry> notesEntries) {
    try {
        notesEntryList = notesEntries;
        notifyDataSetChanged();
    } catch (Exception e) {
        e.printStackTrace();
    }
}
public List<NotesEntry> getnotesentries() {
    return notesEntryList;
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
    try {
        NotesEntry notesEntries = notesEntryList.get(position);
        id = notesEntries.getId();
        text = notesEntries.getText();
        // b1.setText(String.valueOf(id));
        textview1.setText(text);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
@Override
public int getItemCount() {
    if (!notesEntryList.isEmpty()) {
        Log.d("sizereturned", String.valueOf(notesEntryList.size()));
        return notesEntryList.size();
    } else
        Log.d("sizereturned1", String.valueOf(notesEntryList.size()));
    return 0; }

E se eu não fragmentos de uso, este isuue não ajuda arise.Any é apreciado.

Viswanath Kumar Sandu:

Você precisa chamar retrievetasks()método depois de inicializar o adaptador. Isso está causando o problema

adapter = new RecyclerAdapter(numofitems);
retrievetasks();

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=236796&siteId=1
Recomendado
Clasificación