Vous pouvez utiliser AppCompatActivity style comme dialogue avec le style au lieu de dialogue Android régulière
<style name="AlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
...
</style>
Ensuite, vous pouvez utiliser la fonctionnalité de l'activité classe
Vous devez également utiliser suivant 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);
}
Pour qu'il se comporte comme une boîte de dialogue, vous devez rechercher manuellement toutes les vues dont vous avez besoin pour attacher des écouteurs à chaque bouton.
Voici quelques ID que vous trouverez peut-être utiles:
@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;
(annotations Butterknife incluses, si vous ne l'utilisez Butterknife il suffit d'utiliser findViewById avec chaque annotation de @BindView (id))
Avez-vous essayé si vous obtenez des événements onUserInteraction dans votre activité pendant que la boîte de dialogue est affichée? Si oui, vous pouvez suivre si la boîte de dialogue est affichée et gérer le cas en conséquence. – Alex
Je n'ai pas pu obtenir d'événements dans mon activité. – Burak