Recyclerview 未在 alertdialog 中设置

Recyclerview is not setting inside alertdialog

我正在自定义警报对话框视图中设置回收器,但我无法在警报对话框中设置回收器视图。

Button button = (Button) findViewById(R.id.button);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            AlertDialog.Builder alertDialog = new AlertDialog.Builder(context);
            View convertView = LayoutInflater.from(context).inflate(R.layout.recycle_data, null);
            alertDialog.setView(convertView);
            alertDialog.setTitle(context.getResources().getString(R.string.app_name));
            RecyclerView rv = (RecyclerView) convertView.findViewById(R.id.recyclerView);
            rv.setLayoutManager(new LinearLayoutManager(context));
            rv.setAdapter(new CustomSpinner_Adapter(context, mModels));
            AlertDialog dialog= alertDialog.create();
            dialog.show();
        }
    });

我在 android

中传递从 string_array 转换而来的 ArrayList
String[] foodAllergy = getResources().getStringArray(R.array.food_allergy);
    for (int i = 0; i < foodAllergy.length; i++) {
        mCustomSpinnerModel = new CustomSpinnerModel();
        mCustomSpinnerModel.setTitle(foodAllergy[i]);
        mModels.add(mCustomSpinnerModel);
    }

这是用于设置视图的 CustomAdapter,我的警告对话框视图是在设置自定义适配器视图之前设置的

    public class CustomSpinner_Adapter extends RecyclerView.Adapter<CustomSpinner_Adapter.ViewHolder> implements
        CompoundButton.OnCheckedChangeListener {

    private Context mContext;
    private List<CustomSpinnerModel> mCustomModel;

    public CustomSpinner_Adapter(Context context, ArrayList<CustomSpinnerModel> models) {
        mContext = context;
        mCustomModel = models;
    }

    @NonNull
    @Override
    public CustomSpinner_Adapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(mContext).inflate(R.layout.item_selection_check, parent, false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull CustomSpinner_Adapter.ViewHolder holder, int position) {
        holder.textCheckTitle.setText(mCustomModel.get(position).getTitle());
    }

    @Override
    public int getItemCount() {

        return mCustomModel.size();

    }

    @Override
    public void onCheckedChanged(CompoundButton compoundButton, boolean b) {

    }

    public class ViewHolder extends RecyclerView.ViewHolder {

        private TextView textCheckTitle;
        private CheckBox checkAllergy;

        public ViewHolder(View itemView) {
            super(itemView);

            textCheckTitle = (TextView) itemView.findViewById(R.id.check_text_label);
            checkAllergy = (CheckBox) itemView.findViewById(R.id.checkbox_selection);
        }
    }
}

我不明白为什么在自定义适配器视图之前显示警报对话框

错误不在代码中,而是在 xml 中,因为如果我们使用包含 recyclerview 的约束布局来扩充警报对话框,那么我们需要将 recyclerview 设置为 wrap_content身高