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.