java - 没有为 FirebaseRecyclerAdapter<> 调用 OnCreateViewHolder

标签 java android android-layout

我尝试调试我的程序,发现执行没有在 FirebaseRecyclerAdapter recyclerAdapter=new FirebaseRecyclerAdapter( 选项)。我已经尝试了 stackoverflow 提供的所有可能的解决方案,但似乎没有任何解决方案可以解决我的问题。我正在附加我的 MainActivity.java、activity_main.xml,如果您需要任何其他附件,请告诉我, 谢谢你

MainActivity.java

public class MainActivity extends AppCompatActivity {
private RecyclerView recyclerView;
private DatabaseReference myref;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    recyclerView=(RecyclerView)findViewById(R.id.recyclerview);
    recyclerView.setHasFixedSize(false);
    recyclerView.setLayoutManager(new LinearLayoutManager(this));
    myref= FirebaseDatabase.getInstance().getReference().child("/blog");
    FirebaseRecyclerOptions<Blog> options =
            new FirebaseRecyclerOptions.Builder<Blog>()
                    .setQuery(myref, Blog.class)
                    .build();

    FirebaseRecyclerAdapter<Blog,BlogViewHolder> recyclerAdapter=new FirebaseRecyclerAdapter<Blog,BlogViewHolder>(
            options) {
         //this is not being executed
@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
        public void onBindViewHolder(BlogViewHolder holder, int position, Blog model) {
            holder.setTitle(model.getTitle());
            holder.setDescription(model.getDescription());
            holder.setImage(model.getImage());
        }
    };
    recyclerView.setAdapter(recyclerAdapter);
}
public static class BlogViewHolder extends RecyclerView.ViewHolder {
    View mView;
    TextView textView_title;
    TextView textView_decription;
    ImageView imageView;
    public BlogViewHolder(View itemView) {
        super(itemView);
        mView=itemView;
        textView_title = (TextView)itemView.findViewById(R.id.title);
        textView_decription = (TextView) itemView.findViewById(R.id.description);
        imageView=(ImageView)itemView.findViewById(R.id.image);
    }
    public void setTitle(String title)
    {
        textView_title.setText(title+"");
    }
    public void setDescription(String description)
    {
        textView_decription.setText(description);
    }
    public void setImage(String image)
    {
        Picasso.with(mView.getContext())
                .load(image)
                .into(imageView);
    }
}
}

activity_main.xml

 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:id="@+id/activity_main"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 >


<android.support.v7.widget.RecyclerView
    android:id="@+id/recyclerview"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

 </android.support.v7.widget.RecyclerView>


</RelativeLayout>

最佳答案

抱歉迟到了,我希望您也遇到了同样的错误,您缺少的是:

@Override
public void onStart() {
    super.onStart();
    recyclerAdapter.startListening();
}

@Override
public void onStop() {
    super.onStop();
    recyclerAdapter.stopListening();
}

我花了 2 个小时想知道我做错了什么......好吧,事情是这样的。

希望有帮助。

关于java - 没有为 FirebaseRecyclerAdapter<> 调用 OnCreateViewHolder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47247345/

相关文章:

Java - 使用 JBOSS/WildFly 邮件服务而不是 Apache Commons Email 发送邮件有什么优势吗?

java - 如何在任务栏上制作 Windows 7 加载栏

java - 如何从以前布局的图片中清除内存?转到不同的布局/Activity 时如何清理内存?

java - Exoplayer 在全屏模式下有意启动它

android - 具有 visibility=gone 元素的膨胀布局的性能影响

java - 将 double 转换为带有一位小数点和一位小数的 double?

java - 给定场景的设计和测试方法

android - DP5 7.0 - 向未决 Intent 添加额外内容会失败吗?

java - 如何在 Android 上实现 3 种或更多颜色之间的淡入淡出

android - WifiP2pManager.discoverPeers 在 android 10 中失败