Я хочу извлечь данные из базы данных Firebase. Имя моей таблицы - «cardornek». И я устанавливаю разрешения для чтения/записи.java.util.ArrayList.size() 'на ссылке нулевого объекта
Но я получаю эту ошибку "java.util.ArrayList.size()" по ссылке на нулевой объект ". Есть идеи?
RecyclerViewAdapter.java
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> {
private ArrayList<String> values=null;
RecyclerViewAdapter(ArrayList<String> values) {
this.values = values;
}
@Override
public RecyclerViewAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.recycler_view_item,parent,false));
}
@Override
public void onBindViewHolder(RecyclerViewAdapter.ViewHolder holder, int position)
{
holder.name.setText(values.get(position));
}
@Override
public int getItemCount() {
return values.size();
}
public class ViewHolder extends RecyclerView.ViewHolder
{
private TextView name;
ViewHolder(View itemView) {
super(itemView);
name = (TextView) itemView.findViewById(R.id.list_item_text);
}
}
MainActivity.java
public class MainActivity extends AppCompatActivity {
private RecyclerView recyclerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
new GetDataFromFirebase().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
// Read from the database
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("cardornek");
myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
ArrayList<String> values = (ArrayList<String>) dataSnapshot.getValue();
recyclerView.setAdapter(new RecyclerViewAdapter(values));
}
@Override
public void onCancelled(DatabaseError databaseError) {
System.out.println("Failed to read value." + databaseError.toException());
}
});
'dataSnapshot.getValue()' возвращает 'null', поэтому вы передаете' null' в конструктор вашего 'RecyclerViewAdapter' и когда вызовы android' getItemCount() 'вы получаете' NullPointerException' – larsgrefer
Итак, что мне делать ? –
проверьте следующий пример: https://github.com/firebase/quickstart-android/tree/master/database/app/src/main/java/com/google/firebase/quickstart/database –