I am trying to recreate a memo application that is on Samsung devices. this memo application is supposed to just create memos of title and body and display them in a recycler view or list. whenever I go into my MainActivity my application crashes
MainActivity.class
public class MainActivity extends AppCompatActivity
{
ArrayList<Memo> memos;
RecyclerView memoList;
MemoAdapter memoAdapter;
Button addMemo;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
memoList = findViewById(R.id.memoList);
addMemo = findViewById(R.id.addMemo);
memoAdapter = new MemoAdapter(this,memos);
memoList.setAdapter(memoAdapter);
}
}
Memo.class
public class Memo
{
private String mtitle;
private String mbody;
public Memo(String title, String body)
{
mtitle = title;
mbody = body;
}
public String getTitle()
{
return mtitle;
}
public void setTitle(String mtitle) {
this.mtitle = mtitle;
}
public String getBody() {
return mbody;
}
public void setBody(String mbody) {
this.mbody = mbody;
}
}
MemoAdapter.class
public class MemoAdapter extends RecyclerView.Adapter<MemoAdapter.ViewHolder>
{
private Context context;
private ArrayList<Memo> memo;
public MemoAdapter(Context context, ArrayList<Memo> memo)
{
this.context = context;
this.memo = memo;
}
@NonNull
@Override
public MemoAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType)
{
View view = LayoutInflater.from(context).inflate(R.layout.layout_listitem,parent,false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull MemoAdapter.ViewHolder holder, int position)
{
holder.listitem.setText(memo.get(position).getTitle());
/*holder.linearLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
TODO: open composeactivity to edit the text of this memo
}
});*/
}
@Override
public int getItemCount() {
return memo.size();
}
class ViewHolder extends RecyclerView.ViewHolder
{
private TextView listitem;
private LinearLayout linearLayout;
public ViewHolder(@NonNull View itemView)
{
super(itemView);
listitem = itemView.findViewById(R.id.listItem);
linearLayout = itemView.findViewById(R.id.LL);
}
}
Thank you for the help, let me know if I need to post anything more.