简体   繁体   English

FirebaseRecyclerAdapter <>不会调用OnCreateViewHolder

[英]OnCreateViewHolder is not being called for the FirebaseRecyclerAdapter<>

I tried to debug my program and noticed that execution is not going inside FirebaseRecyclerAdapter recyclerAdapter=new FirebaseRecyclerAdapter( options). 我尝试调试程序,发现FirebaseRecyclerAdapter recyclerAdapter = new FirebaseRecyclerAdapter(options)内没有执行。 I have tried all the possible solutions stackoverflow offered but nothing seems to solve my problem.I m attaching my MainActivity.java, activity_main.xml and if u need any other attachment then just tell me, thank you 我已经尝试了stackoverflow提供的所有可能的解决方案,但似乎没有什么能解决我的问题。我附加了MainActivity.java,activity_main.xml,如果您需要任何其他附件,请告诉我,谢谢

MainActivity.java 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 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>

Sorry for being late, i hope you had my same error, what you are missing is this: 抱歉,我迟到了,希望您也遇到了同样的错误,这是您所缺少的:

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

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

i just lost 2 hours wondering what i was doing wrong and...well it was something like this. 我只是迷失了2个小时,不知道自己在做什么错。。。嗯,就像这样。

Hope it helps. 希望能帮助到你。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 RecyclerView onCreateViewHolder未被调用 - RecyclerView onCreateViewHolder not being called 尽管回收了所有视图,还是调用了Recyclerview onCreateViewHolder? - Recyclerview onCreateViewHolder being called despite all views being recycled? RecyclerView中没有调用适配器的onCreateViewHolder和onBindViewHolder方法? - Adapter onCreateViewHolder and onBindViewHolder methods are not getting called in RecyclerView? 使用DPAD快速滚动时,RecyclerView onCreateViewHolder过度调用 - RecyclerView onCreateViewHolder called excessively when scrolling fast with DPAD FirebaseRecyclerAdapter getItemCount = 0 - FirebaseRecyclerAdapter getItemCount = 0 FirebaseRecyclerAdapter 28.0 - FirebaseRecyclerAdapter 28.0 FirebaseRecyclerAdapter上的setOnItemClickListener - setOnItemClickListener on FirebaseRecyclerAdapter 在棉花糖(6.0+)设备上的onCreateViewHolder方法中夸大RecyclerView项的布局时引发“ android.view.InflateException” - “android.view.InflateException” being thrown on inflating RecyclerView item's layout in onCreateViewHolder method on Marshmallow(6.0+) devices 在FirebaseRecyclerAdapter中添加了onChild - onChildAdded in FirebaseRecyclerAdapter 未调用OnClick方法 - OnClick Method is not being called
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM