Вы можете использовать AppCompatActivity стиль в диалоге со стилем вместо регулярного диалога Android
<style name="AlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
...
</style>
Тогда вы могли бы использовать функциональность класса активность
Вы также должны использовать следующие OnCreate:
@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(android.support.v7.appcompat.R.layout.abc_alert_dialog_material);
}
Чтобы вести себя так, как диалог, вам нужно вручную найти все виды, необходимые для прикрепления кликов к каждой кнопке.
Вот некоторые идентификаторы могут оказаться полезными:
@BindView(android.support.v7.appcompat.R.id.topPanel)
protected ViewGroup mTopPanel;
@BindView(android.support.v7.appcompat.R.id.contentPanel)
protected ViewGroup mContentPanel;
@BindView(android.support.v7.appcompat.R.id.customPanel)
protected ViewGroup mCustomPanel;
@BindView(android.support.v7.appcompat.R.id.custom)
protected ViewGroup mCustomViewContainer;
@BindView(android.support.v7.appcompat.R.id.textSpacerNoButtons)
protected View mTextSpacer;
@BindView(android.support.v7.appcompat.R.id.buttonPanel)
protected ButtonBarLayout mButtonPanel;
@BindView(android.R.id.message)
protected TextView mMessage;
@BindView(android.R.id.button1)
protected Button mPositiveButton;
@BindView(android.R.id.button2)
protected Button mNegativeButton;
@BindView(android.R.id.button3)
protected Button mNeutralButton;
(включая пояснения нож для масла, если вы не используете нож для масла использовать только findViewById с каждой аннотацией из @BindView (ид))
Вы пробовали если вы получаете onUserInteraction события в своей деятельности, пока отображается диалоговое окно? Если да, вы можете отслеживать, отображается ли диалоговое окно и соответствующим образом обрабатывать дело. – Alex
Я не мог получать события в своей деятельности. – Burak