I'm trying to receive a list with an array in RecyclerView and get error:
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView.setLayoutManager (android.support.v7.widget.RecyclerView$LayoutManager)'on a null object reference
RecyclerView widget's
<android.support.v7.widget.RecyclerView android:id="@+id/drawerList" android:layout_width="match_parent" android:layout_height="wrap_content"> </android.support.v7.widget.RecyclerView>
I tried to declare LayoutManager to final, but it doesn't help.
Activity code:
public class MainActivity extends ActionBarActivity { private RecyclerView recyclerView; private Toolbar toolbar; private InfAdapter adapter; @Override protected void onCreate (Bundle savedInstanceState) { super.onCreate (savedInstanceState); setContentView (R.layout.activity_main_appbar); recyclerView = (RecyclerView) findViewById(R.id.drawerList); recyclerView.setLayoutManager(new LinearLayoutManager(this)); InfAdapter mAdapter = new InfAdapter(this, getData()); recyclerView.setAdapter(mAdapter); recyclerView.setItemAnimator(new DefaultItemAnimator()); toolbar = (Toolbar) findViewById(R.id.app_bar); setSupportActionBar(toolbar); getSupportActionBar().setDisplayShowHomeEnabled(true); }
Adapter code:
public class InfAdapter extends RecyclerView.Adapter<InfAdapter.MyViewHolder> { private final Context context; private List<Information> data = Collections.emptyList(); public InfAdapter(Context context, List<Information> data){ this.data = data; this.context = context; } @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.custom_row, parent, false); return new MyViewHolder(v); } @Override public void onBindViewHolder(MyViewHolder holder, int position) { Information current = data.get(position); holder.title.setText(current.title); holder.icon.setImageResource(current.iconid); } @Override public int getItemCount() { return data.size(); } class MyViewHolder extends RecyclerView.ViewHolder{ TextView title; ImageView icon; public MyViewHolder(View itemView) { super(itemView); title = (TextView) itemView.findViewById(R.id.listText); icon = (ImageView) itemView.findViewById(R.id.listIcon); } } }
What has possibly gone wrong?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With