firebaserecycleradapter () no se puede aplicar a FirebaseRecyclerAdapter

¿Alguien puede decir cuál es el error en esa línea específica?

Aquí está la imagen

Aquí está el mensaje de error que muestra.

Mensaje de error

package com.example.souravkumar.sqaurewallpapers; import android.os.Bundle; import android.os.PersistableBundle; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.firebase.ui.database.FirebaseRecyclerAdapter; import com.google.firebase.database.DatabaseReference; import com.google.firebase.database.FirebaseDatabase; import com.squareup.picasso.Picasso; /** * Created by Sourav Kumar on 11/3/2017. */ public class popular extends AppCompatActivity { private RecyclerView recyclerView; private DatabaseReference myRef; @Override public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) { super.onCreate(savedInstanceState, persistentState); recyclerView = (RecyclerView) findViewById(R.id.recyclerView); recyclerView.setHasFixedSize(true); recyclerView.setLayoutManager(new LinearLayoutManager(this)); myRef = FirebaseDatabase.getInstance().getReference(); FirebaseRecyclerAdapter adapter = new FirebaseRecyclerAdapter( image_details.class, R.layout.individual_row, myRef) { @Override protected void onBindViewHolder(BlogViewHolder holder, int position, image_details model) { holder.setDate(model.getDate()); holder.setUrl(model.getUrl()); } @Override public BlogViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { return null; } }; recyclerView.setAdapter(adapter); } public static class BlogViewHolder extends RecyclerView.ViewHolder { TextView textView; ImageView imageView; public BlogViewHolder(View itemView) { super(itemView); textView = (TextView)itemView.findViewById(R.id.date); imageView = (ImageView)itemView.findViewById(R.id.imageView); } public void setDate(Long date) { textView.setText(date.toString()); } public void setUrl(String url) { Picasso.with(itemView.getContext()) .load(url) .resize(50, 50) .centerCrop() .into(imageView); } } } 

Enlace a todo el código

La última versión (3.x) de FirebaseUI implementa un método diferente para inicializar un FirebaseRecyclerAdapter que las versiones anteriores. Del uso de la documentación de FirebaseRecyclerAdapter :

Primero, configure el adaptador creando FirebaseRecyclerOptions . En este caso, continuaremos con nuestro ejemplo de chat:

  FirebaseRecyclerOptions options = new FirebaseRecyclerOptions.Builder() .setQuery(query, Chat.class) .build(); 

Luego crea el objeto FirebaseRecyclerAdapter . Ya debería tener una subclase ViewHolder para mostrar cada elemento.

Entonces, para su ejemplo, deberá hacer algo similar a:

 FirebaseRecyclerOptions options = new FirebaseRecyclerOptions.Builder() .setQuery(myRef, image_details.class) .build(); FirebaseRecyclerAdapter adapter = new FirebaseRecyclerAdapter(options) { @Override public BlogViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()) .inflate(R.layout.individual_row, parent, false); return new BlogViewHolder(view); } @Override protected void onBindViewHolder(BlogViewHolder holder, int position, image_details model) { // Bind the image_details object to the BlogViewHolder // ... } }; 

Te perdiste un método para comenzar la actividad. Agregue esto en el método onStart() :

 firebaseRecyclerAdapter.startListening(); 

Hola, su error se debe a un argumento faltante en estos () que se encuentran al lado de este

  

así que te perdiste un argumento más de tu clase BlogViewHolder, así que agregaré el trozo de código y referiré tu argumento que falta por un comentario en esto:

 FirebaseRecyclerAdapter adapter = new FirebaseRecyclerAdapter( image_details.class, R.layout.individual_row, BlogViewHolder.class //see this is missing so you should add it myRef) { 

Esta es la manera correcta :

 FirebaseRecyclerOptions options = new FirebaseRecyclerOptions.Builder() .setQuery(myRef, image_details.class) .build(); FirebaseRecyclerAdapter adapter = new FirebaseRecyclerAdapter(options) { @Override public BlogViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()) .inflate(R.layout.individual_row, parent, false); return new BlogViewHolder(view); } @Override protected void onBindViewHolder(BlogViewHolder holder, int position, image_details model) { // Bind the image_details object to the BlogViewHolder // ... } };