Всплывающие фрагменты/окна

Нужно реализовать всплывающие окна (несколько, у каждого свой функционал: статистика, доп сведения и т.д.). В каждом таком окне будет разнообразный набор элементов, в т.ч. кликабельные. Как лучше это реализовать? Для примера накидал код, работает, можно настроить нужный размер окна, но как сделать кликабельность?

Так же, если есть более рациональный и лучший способ - буду признателен.

public class MainActivity extends AppCompatActivity {

    Button click, but2;
    View my_custom_view;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        click = findViewById(R.id.click);
        my_custom_view = getLayoutInflater().inflate(R.layout.alert, null);
    }

    public void ClicksMe(View v){
        Dialog d = new Dialog(this);
        d.setContentView(my_custom_view);
        but2 = my_custom_view.findViewById(R.id.but2);
        but2.setText("Закрыть");
        d.show();
    }
}

UP

И возник вопрос - как закрыть окно "правильно"? Таким образом приложение вылетает с ошибкой.

       public void ClicksMe(View v){
        final Dialog d = new Dialog(this);
        d.setContentView(my_custom_view);
        but2 = my_custom_view.findViewById(R.id.but2);
        d.show();

        but2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               d.cancel();
            }
        });

      }

UO-2:

При d.dismiss(); закрывается, да, но при повторной попытке открытия вылетает ошибка.

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Circassian

Вешаешь OnClickListener на кнопку

but2.setOnClickListener(v -> {

});
→ Ссылка