Ma tahan kuvada dialoog/üleslugemisakna koos sõnumiga kasutajale, mis näitab "Kas olete kindel, et soovite selle kande kustutada?" ühe nupuga, mis ütleb 'Kustuta'. Kui nuppu Delete
puudutatakse, peaks see kirje kustutama, muidu ei toimu midagi.
Ma olen kirjutanud nende nuppude jaoks kliki kuulaja, aga kuidas ma kutsun dialoogi või hüpikakna ja selle funktsionaalsuse esile?
Selleks võiksite kasutada AlertDialogi
ja konstrueerida selle klassi Builder
abil. Allpool toodud näites kasutatakse vaikimisi konstruktorit, mis võtab ainult Context
, kuna dialoog pärib õige teema Contextist, mille sa üle annad, kuid on olemas ka konstruktor, mis võimaldab sul määrata teise parameetrina konkreetse teema ressursi, kui sa soovid seda teha.
new AlertDialog.Builder(context)
.setTitle("Delete entry")
.setMessage("Are you sure you want to delete this entry?")
// Specifying a listener allows you to take an action before dismissing the dialog.
// The dialog is automatically dismissed when a dialog button is clicked.
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// Continue with delete operation
}
})
// A null listener allows the button to dismiss the dialog and take no further action.
.setNegativeButton(android.R.string.no, null)
.setIcon(android.R.drawable.ic_dialog_alert)
.show();
Proovige seda koodi:
AlertDialog.Builder builder1 = new AlertDialog.Builder(context);
builder1.setMessage("Write your message here.");
builder1.setCancelable(true);
builder1.setPositiveButton(
"Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
builder1.setNegativeButton(
"No",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert11 = builder1.create();
alert11.show();
Olge lihtsalt ettevaatlik, kui soovite dialoogi sulgeda - kasutage dialog.dismiss()
. Oma esimesel katsel kasutasin dismissDialog(0)
(mille ma ilmselt kopeerisin mõnest kohast), mis mõnikord töötab. Süsteemi poolt pakutava objekti kasutamine tundub turvalisem valik.