Я создаю NotesApp, и у меня есть recylerview, который показан в моей Activity под названием NotesActivity, когда я щелкаю по элементу recylerview, он открывает другую Activity под названием Classwork (которая имеет еще одно представление переработчика). Идея состоит в том, чтобы создавать списки назначений внутри каждой заметки (элемент повторного просмотра)
Проблема заключается в том, что при создании назначения оно отображается в NotesActivity вместо ClassworkActivity. Я создал Адаптер и Listdata для каждого из этих двух обзоров recyler
Это то, что я пробовал:
NotesAdapter. java
public class NotesAdapter extends RecyclerView.Adapter<NotesAdapter.MyHolder> {
List<Listdata> noteslist;
private Context context;
public NotesAdapter(List<Listdata> noteslist,Context context) {
this.context=context;
this.noteslist=noteslist;
}
@NonNull
@Override
public MyHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view= LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item,viewGroup,false);
MyHolder myHolder=new MyHolder(view);
return myHolder;
}
@Override
public void onBindViewHolder(@NonNull final MyHolder myHolder, final int position) {
final Listdata data=noteslist.get(position);
myHolder.title.setText(data.getTitle());
myHolder.desc.setText(data.getDesc());
myHolder.menuIcon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PopupMenu popupMenu = new PopupMenu(context, myHolder.menuIcon);
popupMenu.inflate(R.menu.popup_menu);
popupMenu.setGravity(Gravity.END);
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_edit:
Toast.makeText(context, "Edit", Toast.LENGTH_SHORT).show();
Intent i=new Intent(context, EditActivity.class);
i.putExtra("id",data.id);
i.putExtra("title",data.title);
i.putExtra("desc",data.desc);
context.startActivity(i);
break;
case R.id.action_delete:
noteslist.remove(position);
notifyDataSetChanged();
Toast.makeText(context, "delete", Toast.LENGTH_SHORT).show();
break;
default:
break;
}
return false;
}
});
popupMenu.show();
}
});
}
@Override
public int getItemCount() {
return noteslist.size();
}
class MyHolder extends RecyclerView.ViewHolder {
TextView title,desc;
ImageView menuIcon;
public MyHolder(@NonNull View itemView) {
super(itemView);
menuIcon = itemView.findViewById(R.id.menuIcon);
title=itemView.findViewById(R.id.title);
desc=itemView.findViewById(R.id.desc);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Listdata listdata=noteslist.get(getAdapterPosition());
Intent i=new Intent(context, StreamActivity.class);
i.putExtra("id",listdata.id);
i.putExtra("title",listdata.title);
i.putExtra("desc",listdata.desc);
context.startActivity(i);
}
});
}
}
}
AssignmentAdapter. java
public class AssignmentAdapter extends RecyclerView.Adapter<AssignmentAdapter.MyHolder> {
private List<AssignListdata> assignmentlist;
private Context context;
public AssignmentAdapter(List<AssignListdata> assignmentlist, Context context) {
this.context=context;
this.assignmentlist=assignmentlist;
}
@NonNull
@Override
public AssignmentAdapter.MyHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view= LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.assignment_item,viewGroup,false);
AssignmentAdapter.MyHolder myHolder=new AssignmentAdapter.MyHolder(view);
return myHolder;
}
@Override
public void onBindViewHolder(@NonNull final AssignmentAdapter.MyHolder myHolder, final int position) {
final AssignListdata data=assignmentlist.get(position);
myHolder.titleas.setText(data.getTitle());
myHolder.descas.setText(data.getDesc());
}
@Override
public int getItemCount() {
return assignmentlist.size();
}
class MyHolder extends RecyclerView.ViewHolder {
TextView titleas,descas;
ImageView menuIcon;
public MyHolder(@NonNull View itemView) {
super(itemView);
titleas=itemView.findViewById(R.id.title_as);
descas=itemView.findViewById(R.id.desc_as);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AssignListdata listdata=assignmentlist.get(getAdapterPosition());
Intent i=new Intent(context, EditAssignActivity.class);
i.putExtra("id",listdata.id);
i.putExtra("title",listdata.titleas);
i.putExtra("desc",listdata.descas);
context.startActivity(i);
}
});
}
}
}
AssignListdata. java (для списка назначений, который предполагается создать внутри каждой заметки)
public class AssignListdata {
public String getTitle() {
return titleas;
}
public void setTitle(String title) {
this.titleas = title;
}
public String getDesc() {
return descas;
}
public void setDesc(String desc) {
this.descas = desc;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String id;
public String titleas;
public String descas;
public AssignListdata() {
// Default constructor required for calls to DataSnapshot.getValue(User.class)
}
public AssignListdata(String id,String title, String desc) {
this.id=id;
this.titleas = title;
this.descas = desc;
}
}
Listdata. java (для заметок)
public class Listdata {
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String id;
public String title;
public String desc;
public Listdata() {
// Default constructor required for calls to DataSnapshot.getValue(User.class)
}
public Listdata(String id,String title, String desc) {
this.id=id;
this.title = title;
this.desc = desc;
}
}
, и вы можете найти по этой ссылке мои другие файлы (особенно действия Add и Edit): Мои действия по добавлению и редактированию
, пожалуйста, помогите: (