-1

I have been reading the different answers here on stackoverflow post and tried to implement their solutions but I am still getting the error

public class Appetizer extends AppCompatActivity {

    private RecyclerView recyclerView;
        private AdapterFood mAdapter;


     recyclerView = (RecyclerView)findViewById(R.id.lvaptzr);
                   mAdapter = new AdapterFood(Appetizer.this,data);
                   recyclerView.setAdapter(mAdapter);
                   recyclerView.setLayoutManager(new LinearLayoutManager(Appetizer.this));

this is my Adapter class:

public class AdapterFood extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
    private Context context;
    private LayoutInflater inflater;
    List<DataFood> data = Collections.emptyList();
    DataFood current;
    int currentPos=0;

    public AdapterFood(Context context, List<DataFood> data){
        this.context=context;
        inflater=LayoutInflater.from(context);
        this.data=data;
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view=inflater.inflate(R.layout.list_item,parent,false);
        Myholder holder=new Myholder(view);
        return holder;

    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
        Myholder myholder=(Myholder) holder;
        DataFood current=data.get(position);
        myholder.textFoodname.setText(current.foodName);
        myholder.textPrice.setText("Rp. " + current.price);
        myholder.textId.setText(current.foodId);
        Glide.with(context).load("http://kelompokdua.hol.es/pic/" + current.foodImage)
                .placeholder(R.mipmap.ic_launcher)
                .error(R.mipmap.ic_launcher)
                .into(myholder.ivFood);
    }

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

    class Myholder extends RecyclerView.ViewHolder{
        TextView textFoodname,textPrice,textId;
        ImageView ivFood;

        public Myholder(View itemView) {
            super(itemView);
            textFoodname=(TextView) itemView.findViewById(R.id.textFoodname);
            ivFood=(ImageView)itemView.findViewById(R.id.ivFood);
            textId=(TextView)itemView.findViewById(R.id.textid);
            textPrice=(TextView) itemView.findViewById(R.id.textPrice);
        }
    }
}

i try any method, but i can't solve the probems. what i am doing wrong?

Andrii Omelchenko
  • 13,183
  • 12
  • 43
  • 79
Fawwaz
  • 27
  • 1
  • 10

1 Answers1

2

You should call setLayoutManager before setAdapter .

    recyclerView = (RecyclerView)findViewById(R.id.lvaptzr);
    LinearLayoutManager mLayoutManager = new LinearLayoutManager(Appetizer.this);
    recyclerView.setLayoutManager(mLayoutManager); // 1st
    mAdapter= new AdapterFood(Appetizer.this,data);
    recyclerView.setAdapter(mAdapter);  // 2nd 
IntelliJ Amiya
  • 74,896
  • 15
  • 165
  • 198