Мое приложение для Android не распознает мой адаптер. Адаптер не подключен, пропуск макетаAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Мое приложение для Android не распознает мой адаптер. Адаптер не подключен, пропуск макета

Сообщение Anonymous »

Я создаю приложение журнала, и всякий раз, когда я пытаюсь использовать меню на панели инструментов, оно говорит, что адаптер не подключен, пропуская макет, и не позволяет мне добавить еще один журнал в список журналов (recyclerview). >

Код: Выделить всё

package com.example.self;

import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;

import androidx.activity.EdgeToEdge;
import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.firestore.CollectionReference;
import com.google.firebase.firestore.FirebaseFirestore;
import com.google.firebase.firestore.QueryDocumentSnapshot;
import com.google.firebase.firestore.QuerySnapshot;
import com.google.firebase.storage.StorageReference;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import model.Journal;
import ui.JournalRecyclerAdapter;
import util.JournalApi;

public class JournalListActivity extends AppCompatActivity {
private FirebaseAuth firebaseAuth;
private FirebaseAuth.AuthStateListener authStateListener;
private FirebaseUser user;
private FirebaseFirestore db = FirebaseFirestore.getInstance();
private StorageReference storageReference;
private List journalList;
private RecyclerView recyclerView;
private JournalRecyclerAdapter journalRecyclerAdapter;

private CollectionReference collectionReference = db.collection("Journal");
private TextView noJournalEntry;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_journal_list);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});

ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
}

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

noJournalEntry = findViewById(R.id.list_no_thoughts);
journalList = new ArrayList();
recyclerView = findViewById(R.id.recycleView);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this));

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
if (item.getItemId() == R.id.action_add) {
if (user != null && firebaseAuth != null) {
startActivity(new Intent(JournalListActivity.this, PostJournalActivity.class));
finish();
}
} else if (item.getItemId() == R.id.action_signout) {
if (user != null &&  firebaseAuth != null) {
firebaseAuth.signOut();
startActivity(new Intent(JournalListActivity.this, MainActivity.class));
finish();
}
}
return super.onOptionsItemSelected(item);
}

@Override
protected void onStart() {
super.onStart();

collectionReference.whereEqualTo("userId", JournalApi.getInstance()
.getUserId())
.get()
.addOnSuccessListener(new OnSuccessListener() {
@Override
public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
if (!queryDocumentSnapshots.isEmpty()) {
for (QueryDocumentSnapshot journals : queryDocumentSnapshots) {
Journal journal = journals.toObject(Journal.class);
journalList.add(journal);
}
// Povikuvanje na RECYCLERVIEW
journalRecyclerAdapter = new JournalRecyclerAdapter(JournalListActivity.this, journalList);
recyclerView.setAdapter(journalRecyclerAdapter);
journalRecyclerAdapter.notifyDataSetChanged();

}else {
noJournalEntry.setVisibility(View.VISIBLE);
}
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {

}
});
}
}
Когда я вызываю setAdapter() в RecyclerView, я получаю сообщение об ошибке «Адаптер не подключен; пропуск макета». Это происходит даже несмотря на то, что я установил адаптер в методе onStart() после получения данных из Firestore.
Я обязательно вызывал notifyDataSetChanged() после добавления новых записей журнала и пытался установить адаптер с пустым списком в onCreate(), но проблема не устранена.
Есть предложения по решению этой проблемы?

Подробнее здесь: https://stackoverflow.com/questions/791 ... ing-layout
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»