When I try to run my code, it gives me an error saying that i'm trying to attempt RecyclerView on a null object reference. The problem that android studio detect is in this line recyclerView.setHasFixedSize(true);
. Anybody know the problemm ?
Here is the Activity:
public class SalesHistoryActivity extends AppCompatActivity {
@BindView(R.id.sales_recycler)
RecyclerView recyclerView;
SalesAdapter adapter;
List<Sales> salesList;
Sales sales;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sales_history);
salesList = new ArrayList<>();
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
adapter = new SalesAdapter(this, salesList);
recyclerView.setAdapter(adapter);
loadItem();
}
Here is the adapter
public class SalesAdapter extends RecyclerView.Adapter<SalesAdapter.ItemViewHolder> {
private Context mCtx;
private List<Sales> salesList;
public SalesAdapter(Context mCtx, List<Sales> salesList){
this.mCtx = mCtx;
this.salesList = salesList;
}
@NonNull
@Override
public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View rootView = LayoutInflater.from(mCtx).inflate(R.layout.list_sales, null, false);
RecyclerView.LayoutParams layoutParams = new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
rootView.setLayoutParams(layoutParams);
return new ItemViewHolder(rootView);
}
@Override
public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
final Sales sales =salesList.get(position);
holder.tvDate.setText(sales.getDate());
holder.tvType.setText(sales.getType());
holder.tvQty.setText(sales.getQty());
holder.tvPrice.setText(mCtx.getString(R.string.price, sales.getPrice()));
}
@Override
public int getItemCount() {
return salesList.size();
}
public class ItemViewHolder extends RecyclerView.ViewHolder {
TextView tvDate, tvType, tvQty, tvPrice;
public ItemViewHolder(@NonNull View itemView) {
super(itemView);
}
}
}