Just as the title says.
I dont think my adapter and view holder are wrong (but then again its my first time using it), but upon launching the programme, my emulator crashes. Is it something to do with my layout?
(I've attached screenshots of my layouts, my code for recycler view, and the logcat message)
ViewHolder
public class myPageViewHolder extends RecyclerView.ViewHolder {
TextView rName, rDesc, rDuration, rIngredients, rSteps;
public myPageViewHolder(View itemView) {
super(itemView);
rName = itemView.findViewById(R.id.rName);
rDesc = itemView.findViewById(R.id.rDesc);
rDuration = itemView.findViewById(R.id.rDuration);
rIngredients = itemView.findViewById(R.id.rIngredients);
rSteps = itemView.findViewById(R.id.rSteps);
}
}
Adapter
public class myPageAdapter extends RecyclerView.Adapter<myPageViewHolder> {
ArrayList<Recipe> data;
public myPageAdapter(ArrayList<Recipe> input) { data = input; }
public myPageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View item = LayoutInflater.from(parent.getContext()).inflate(R.layout.mypagelayout, parent, false);
return new myPageViewHolder(item);
}
public void onBindViewHolder(myPageViewHolder holder, int position) {
Recipe r = data.get(position);
holder.rName.setText(r.getName());
holder.rDesc.setText(r.getDescription());
holder.rDuration.setText(r.getDuration() + "mins");
holder.rIngredients.setText(r.getIngredients()[('\n')]);
holder.rSteps.setText(r.getSteps()[('\n')]);
}
public int getItemCount() { return data.size(); }
}
// Creates recyclerView to display recipes
RecyclerView recyclerView = findViewById(R.id.recyclerView);
myPageAdapter adapter = new myPageAdapter(recipeList);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.setAdapter(adapter);
MainActivity
public class MainActivity extends AppCompatActivity {
// Create an ArrayList to store all the recipes
ArrayList<Recipe> recipeList = (ArrayList<Recipe>) getIntent().getSerializableExtra("rList");
// Receives any intent
Intent intent = getIntent();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Finds icons
ImageView create = findViewById(R.id.createImage);
// Create onClickListeners for create
create.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent gotoCreate = new Intent(MainActivity.this, createRecipe.class);
startActivity(gotoCreate);
}
});
// Creates recyclerView to display recipes
RecyclerView recyclerView = findViewById(R.id.recyclerView);
myPageAdapter adapter = new myPageAdapter(recipeList);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.setAdapter(adapter);
}
}