Вам нужно позвонить
dialog.setContentView(...);
раньше, чем любой из
dialog.findViewById(...);
Это связано с тем, что без настройки contentView findViewById(..)
вернет null
, поскольку не удалось найти представление по заданному идентификатору.
Поэтому, когда вы пытаетесь вызвать setOnClickListener(..)
, вы вызываете метод против null
, в итоге вы получаете NullPointerException
Взгляните на официальный документ: Здесь