Recyclerview не устанавливается внутри alerttdialog - PullRequest
0 голосов
/ 05 июля 2018

Я настраиваю утилизацию в диалоговом окне настраиваемого оповещения, но не могу настроить утилизацию в диалоговом окне оповещения.

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();
        }
    });

Я передаю ArrayList, преобразованный из string_array в Android

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);
        }
    }
}

Я не понимаю, почему отображается диалоговое окно с предупреждением перед пользовательским представлением адаптера

1 Ответ

0 голосов
/ 13 июля 2018

Ошибка была не в коде, а в xml, потому что, если мы раздуваем алертилдалог, используя ограничение ограничений, содержащее обзор рециркулятора, нам нужно установить значение рециркулятора в wrap_content в высоту

...