Как создать recylerview внутри элемента recylerview? - PullRequest
1 голос
/ 01 апреля 2020

Я создаю 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): Мои действия по добавлению и редактированию

, пожалуйста, помогите: (

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...