thorbenprimke / realm-recyclerview

A RecyclerView that is powered by Realm and lots more
555 stars 151 forks source link

RecyclerView adapter not set, therefore skipping layout. #71

Closed jpaseneta closed 5 years ago

jpaseneta commented 8 years ago

Hi!

I'm using retrofit and rx java in conjuction with realm. I have this method call:

`apiService.getUserList().subscribeOn(Schedulers.io())
                .doOnNext(response -> {
                    Realm realm = Realm.getDefaultInstance();
                    realm.executeTransaction(realm1 ->{
                            realm1.copyToRealm(response);});
                    realm.close();

                })
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(response -> {
                    //Log.d("realmcontains", response.getName());
                    //checkRealmDB();
                    RealmResults<RealmUser> items = realm.where(RealmUser.class).findAll();
                    Log.d("ITEMSSIZE", items.size()+"");
                    testUIRecyclerView = (RealmRecyclerView) findViewById(R.id.realm_recycler_view);
                    UITestRecyclerViewAdapter adapter = new UITestRecyclerViewAdapter(this,items,true,false);
                    testUIRecyclerView.setAdapter(adapter);
                    Log.d("adapter set", "zzzz");
                });`

i have set animateResults to false since my model currently has no primary key as i was still testing.

but the log shows:

06-30 06:43:51.452 23197-23197/com.smartwavedev.genie E/RecyclerView: No adapter attached; skipping layout 06-30 06:43:51.911 23197-23197/com.smartwavedev.genie E/RecyclerView: No adapter attached; skipping layout 06-30 06:43:52.166 23197-23197/com.smartwavedev.genie I/art: Explicit concurrent mark sweep GC freed 6462(781KB) AllocSpace objects, 6(79KB) LOS objects, 39% free, 3MB/5MB, paused 240us total 19.220ms 06-30 06:43:52.168 23197-23197/com.smartwavedev.genie D/ITEMSSIZE: 10 06-30 06:43:52.180 23197-23197/com.smartwavedev.genie D/adapter set: zzzz

my adapter looks like this(upon tweaking/understanding your example):

`public class UITestRecyclerViewAdapter extends RealmBasedRecyclerViewAdapter<RealmUser,RealmViewHolder> {

    public Context context;
    public RealmResults<RealmUser> data;

    public UITestRecyclerViewAdapter(Context context, RealmResults<RealmUser> realmResults, boolean automaticUpdate, boolean animateIdType) {
        super(context, realmResults, automaticUpdate, animateIdType);
        this.context=context;
        this.data=realmResults;

    }

    @Override
    public void onBindRealmViewHolder(RealmViewHolder realmViewHolder, int i) {
        RealmUser user = data.get(i);

        UITestRecyclerViewItemViewHolder container = (UITestRecyclerViewItemViewHolder)realmViewHolder;
        container.firstLine.setText(user.getName());
        Picasso.with(context).load(R.drawable.somewhereinneverland).fit().centerInside().into(container.imageView);
    }

    @Override
    public RealmViewHolder onCreateRealmViewHolder(ViewGroup parent, int i) {
        RealmViewHolder vh = null;

        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.itemrow_layout, parent, false);
        vh = new UITestRecyclerViewItemViewHolder(v);
        return vh;
    }

    @Override
    public int getItemCount() {
        return data.size();
    }

    public static class UITestRecyclerViewItemViewHolder extends RealmViewHolder {
        public TextView firstLine;
        public ImageView imageView;

        public UITestRecyclerViewItemViewHolder(View v) {
            super(v);
            firstLine = (TextView) v.findViewById(R.id.firstLine);
            imageView = (ImageView) v.findViewById(R.id.imageicon);

        }
    }
}`

what could be the problem here?

Thank you.