Error with RealmSearchView with my Realm Data Base

0

I want to implement a SearchView in realm and I found RealmSearchView in link but I get an error in the adapter, these are the errors

at com.condado.yeikel.mediosbasicos.Adapters.ExpedienteSearchViewAdapter$ExpedienteItemView.bind(ExpedienteSearchViewAdapter.java:100)
                  at com.condado.yeikel.mediosbasicos.Adapters.ExpedienteSearchViewAdapter.onBindRealmViewHolder(ExpedienteSearchViewAdapter.java:70)
                  at com.condado.yeikel.mediosbasicos.Adapters.ExpedienteSearchViewAdapter.onBindRealmViewHolder(ExpedienteSearchViewAdapter.java:23)

on line 100 this:

 public void bind(Expediente expediente, int index) {
        this.expediente = expediente;
        this.index = index;

        estac.setText(expediente.getEstacion());
        area.setText(expediente.getArea());
        estado.setText(expediente.getEstado());

    }

on line 70:

@Override
public void onBindRealmViewHolder(ViewHolder viewHolder, int position) {
    final Expediente expediente = realmResults.get(position);
    viewHolder.container.bind(expediente, position);
}

and finally in the 23 it includes my complete adapter which is this:

package com.condado.yeikel.mediosbasicos.Adapters;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;

import com.condado.yeikel.mediosbasicos.Buscar;
import com.condado.yeikel.mediosbasicos.Models.Expediente;
import com.condado.yeikel.mediosbasicos.R;

import co.moonmonkeylabs.realmsearchview.RealmSearchAdapter;
import co.moonmonkeylabs.realmsearchview.RealmSearchViewHolder;
import io.realm.Realm;
import io.realm.RealmResults;

/**
 * Created by yeikel on 05/11/2017.
 */

public class ExpedienteSearchViewAdapter extends RealmSearchAdapter < Expediente,
  ExpedienteSearchViewAdapter.ViewHolder > {

    private OnItemClickListener listener;

    public ExpedienteSearchViewAdapter(
      Context context,
      Realm realmResults,
      String filterColumnName) {
      super(context, realmResults, filterColumnName);
    }

    public void setOnItemClickListener(OnItemClickListener listener) {
      this.listener = listener;
    }



    public class ViewHolder extends RealmSearchViewHolder implements View.OnClickListener {
      ExpedienteItemView container;
      OnItemClickListener mListener;

      public ViewHolder(ExpedienteItemView container, OnItemClickListener listener) {
        super(container);
        this.container = container;
        this.mListener = listener;

        container.setOnClickListener(this);
      }

      @Override
      public void onClick(View v) {
        if (mListener != null) {
          mListener.onItemClick(container, container.getExpediente(), container.getIndex());
        }
      }
    }

    @Override
    public ViewHolder onCreateRealmViewHolder(ViewGroup viewGroup, int viewType) {
      return new ViewHolder(new ExpedienteItemView(viewGroup.getContext()), this.listener);
    }



    @Override
    public void onBindRealmViewHolder(ViewHolder viewHolder, int position) {
      final Expediente expediente = realmResults.get(position);
      viewHolder.container.bind(expediente, position);
    }

    public interface OnItemClickListener {
      void onItemClick(View view, Expediente expediente, int index);
    }

    private class ExpedienteItemView extends RelativeLayout {

      TextView estac = (TextView) findViewById(R.id.tvEstac);
      TextView area = (TextView) findViewById(R.id.tvArea);
      TextView estado = (TextView) findViewById(R.id.tvEstado);

      private Expediente expediente;
      private int index;

      public ExpedienteItemView(Context context) {
        super(context);
        init(context);
      }

      private void init(Context context) {
        inflate(context, R.layout.plantilla_recycler_item, this);

      }

      public void bind(Expediente expediente, int index) {
        this.expediente = expediente;
        this.index = index;

        estac.setText(expediente.getEstacion());
        area.setText(expediente.getArea());
        estado.setText(expediente.getEstado());

      }

      public Expediente getExpediente() {
        return expediente;
      }

      public int getIndex() {
        return index;
      }
    }

  }

and this is the complete error that comes to me:

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.condado.yeikel.mediosbasiocos, PID: 2208
                  java.lang.NullPointerException
                      at com.condado.yeikel.mediosbasicos.Adapters.ExpedienteSearchViewAdapter$ExpedienteItemView.bind(ExpedienteSearchViewAdapter.java:100)
                      at com.condado.yeikel.mediosbasicos.Adapters.ExpedienteSearchViewAdapter.onBindRealmViewHolder(ExpedienteSearchViewAdapter.java:70)
                      at com.condado.yeikel.mediosbasicos.Adapters.ExpedienteSearchViewAdapter.onBindRealmViewHolder(ExpedienteSearchViewAdapter.java:23)
                      at io.realm.RealmBasedRecyclerViewAdapter.onBindViewHolder(RealmBasedRecyclerViewAdapter.java:278)
                      at io.realm.RealmBasedRecyclerViewAdapter.onBindViewHolder(RealmBasedRecyclerViewAdapter.java:49)
                      at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:6067)
                      at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:6100)
                      at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5282)
                      at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5158)
                      at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2061)
                      at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1445)
                      at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1408)
                      at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:580)
                      at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3379)
                      at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3188)
                      at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3632)
                      at android.view.View.layout(View.java:14817)
                      at android.view.ViewGroup.layout(ViewGroup.java:4631)
                      at android.support.v4.widget.SwipeRefreshLayout.onLayout(SwipeRefreshLayout.java:630)
                      at android.view.View.layout(View.java:14817)
                      at android.view.ViewGroup.layout(ViewGroup.java:4631)
                      at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
                      at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
                      at android.view.View.layout(View.java:14817)
                      at android.view.ViewGroup.layout(ViewGroup.java:4631)
                      at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
                      at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
                      at android.view.View.layout(View.java:14817)
                      at android.view.ViewGroup.layout(ViewGroup.java:4631)
                      at android.support.design.widget.HeaderScrollingViewBehavior.layoutChild(HeaderScrollingViewBehavior.java:131)
                      at android.support.design.widget.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:42)
                      at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:1367)
                      at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:849)
                      at android.view.View.layout(View.java:14817)
                      at android.view.ViewGroup.layout(ViewGroup.java:4631)
                      at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
                      at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
                      at android.view.View.layout(View.java:14817)
                      at android.view.ViewGroup.layout(ViewGroup.java:4631)
                      at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
                      at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
                      at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
                      at android.view.View.layout(View.java:14817)
                      at android.view.ViewGroup.layout(ViewGroup.java:4631)
                      at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
                      at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
                      at android.view.View.layout(View.java:14817)
                      at android.view.ViewGroup.layout(ViewGroup.java:4631)
                      at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
                      at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
                      at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
                      at android.view.View.layout(View.java:14817)
                      at android.view.ViewGroup.layout(ViewGroup.java:4631)
                  	at android.widget.FrameLayou
I/Process: Sending signal. PID: 2208 SIG: 9
Application terminated.
    
asked by Yeikel200 07.11.2017 в 16:19
source

1 answer

0

and found the problem is that in the example were implementing butterknife and specifically needed for BIND and onBindRealmViewHolder method because they are specialty was working methods only Realm

    
answered by 08.11.2017 / 16:59
source