Показать Recyclerview внутри alertDialog

1
imgTest.setOnClickListener(new View.OnClickListener() {
                                @Override
                                public void onClick(View v) {
                                    final AlertDialog.Builder mBuilder  =   new AlertDialog.Builder(getApplicationContext());
                                    mBuilder.setTitle("Location Available!");
                                    LayoutInflater inflater =   getLayoutInflater();
                                    View convertView        =   inflater.inflate(R.layout.reclycer_data, null);

                                    RecyclerView list       =   convertView.findViewById(R.id.recView);
                                    list.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
                                    list.setAdapter(adapter);
                                    AlertDialog dialog      =   mBuilder.create();
                                    dialog.show();
                                }
                            });

Я хочу показать свое Recyclerview в AlertDialog как код, я почти уверен, что уже следую в видео, но оно всегда закрывается, когда я открываю alertDialog. Ребята, вы можете мне помочь? я новый пользователь андроид студии

Теги:

2 ответа

1

Используйте пользовательский макет диалога, чтобы добавить свой собственный макет в диалог. Попробуйте использовать приведенный ниже код. Надеюсь, что это будет полезным ответом.

final Dialog dialog = new Dialog(getApplicationContext(), R.style.FullHeightDialog);

    dialog.setContentView(R.layout.reclycer_data);
    dialog.setCancelable(false);

    if (dialog.getWindow() != null){
        dialog.getWindow().setLayout(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
    }

    RecyclerView list = dialog.findViewById(R.id.recView);
    list.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
    list.setAdapter(adapter);

dialog.show();
  • Определить стиль диалога в style.xml

    <style name="FullHeightDialog" parent="Base.Theme.AppCompat.Light.Dialog">
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowFrame">@null</item>
        <item name="android:windowFullscreen">true</item>
    </style>   
    
0

Контекст диалога должен Активность

    final AlertDialog.Builder mBuilder = new AlertDialog.Builder(YouActivity.this);
    mBuilder.setTitle("Location Available!");
    LayoutInflater inflater = getLayoutInflater();
    View convertView = inflater.inflate(R.layout.reclycer_data, null);

    RecyclerView list = convertView.findViewById(R.id.recView);
    list.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
    list.setAdapter(adapter);
    mBuilder.setView(convertView); // setView

    AlertDialog dialog = mBuilder.create();
    dialog.show();

Ещё вопросы

Сообщество Overcoder
Наверх
Меню