Как изменить пользовательский макет внутри RecyclerView с помощью одного пользовательского диалогового класса? - PullRequest
0 голосов
/ 22 сентября 2018

У меня много CardViews, и я хочу показывать пользовательский диалог при каждом щелчке cardView. Я создал класс MyDialog, расширяющий DialogFragmnent. Я хочу передать файл макета в RecyclerView с помощью одного из методов моего класса «MyDialog» getData (int resource) но когда я звоню, он показывает ошибку и приложение зависло.

Это мой класс диалога:



 public class MyDialog extends DialogFragment {
     int resource;
     public void getData(int resource)
       {
         this.resource=resource;
       }

     @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {
        AlertDialog.Builder builder=new AlertDialog.Builder(getActivity());
        LayoutInflater inflater=getActivity().getLayoutInflater();
        builder.setView(inflater.inflate(resource,null));

        return builder.create();
        }
    }


Это мой метод onBindViewHolder

 @Override
public void onBindViewHolder( MyViewHolder holder, final int position) {
  Model model=albums.get(position);
  holder.category_name.setText(model.getCategory());
  holder.items_count.setText(model.getItems());
  holder.thumbnail.setImageResource(model.getThumbnail());
    Glide.with(context).load(model.getThumbnail());
 holder.cardView.setOnClickListener(new View.OnClickListener() {
     @Override
     public void onClick(View v) {
         String n=albums.get(position).getCategory();
          myDialog=new MyDialog();

         if (n.equals("Burger"))
         {
             myDialog.getData(R.layout.custom_dialog_layout);
             fm=((AppCompatActivity)context).getSupportFragmentManager();
             myDialog.show(fm,"my_dialog");
         }
         if (n.equals("Burger"))
         {
             myDialog.getData(R.layout.chawomin);
             fm=((AppCompatActivity)context).getSupportFragmentManager();
             myDialog.show(fm,"my_dialog");
         }


     }
 });

}
...