L'API dice che la finestra di dialogo degli avvisi può avere uno, due o tre pulsanti, ma l'SDK consente solo un pulsante positivo e negativo. Come posso aggiungere un terzo pulsante?Come posso aggiungere un terzo pulsante a una finestra di dialogo di avviso Android?
risposta
Questo frammento di codice dovrebbe contribuire a spiegare i tre diversi pulsanti è possibile utilizzare:
alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setTitle("Dialog Button");
alertDialog.setMessage("This is a three-button dialog!");
alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "Button 1 Text", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//...
} });
alertDialog.setButton(AlertDialog.BUTTON_NEGATIVE, "Button 2 Text", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//...
}});
alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "Button 3 Text", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//...
}});
Questo deprecato ... dai un'occhiata alla mia risposta. – ninjasense
@ninjasense, ho capito e stavo modificando mentre scrivevi la tua risposta. Grazie! – sahhhm
Quando si crea la finestra di dialogo, aggiungere qualcosa di simile per il costruttore:
builder = new AlertDialog.Builder(context);
builder.setTitle("Test");
builder.setIcon(R.drawable.icon);
builder.setMessage("test");
builder.setPositiveButton("Call Now",
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int id)
{
dialog.cancel();
}
});
builder.setNeutralButton("Setup",
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int id)
{
context.startActivity(new Intent(context, Setup.class));
//dialog.cancel();
}
});
builder.setNegativeButton("Exit",
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int id)
{
dialog.cancel();
}
});
builder.create().show();
@ninjasense È possibile aggiungere il quarto pulsante per avvisare la finestra di dialogo? – Geek
in questo caso - no. Dovresti creare una vista personalizzata. – AndrewS
La creazione di finestre di avviso personalizzate è più accurata. https://stackoverflow.com/questions/13341560/how-to-create-a-custom-dialog-box-in-android –
Aggiungi qualsiasi numero di pulsanti senza xml:
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Title");
builder.setItems(new CharSequence[]
{"button 1", "button 2", "button 3", "button 4"},
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// The 'which' argument contains the index position
// of the selected item
switch (which) {
case 0:
Toast.makeText(context, "clicked 1", 0).show();
break;
case 1:
Toast.makeText(context, "clicked 2", 0).show();
break;
case 2:
Toast.makeText(context, "clicked 3", 0).show();
break;
case 3:
Toast.makeText(context, "clicked 4", 0).show();
break;
}
}
});
builder.create().show();
Questa soluzione non aggiunge pulsanti, ad es. "OK", "Annulla", ecc., Ma piuttosto impostare gli elementi da visualizzare nell'elenco di scelte, ad esempio "Opzione 1", "Opzione 2", ecc. Poiché la domanda menziona che "l'SDK consente solo per un pulsante positivo e negativo ", questo non risponde come superare questa limitazione. – d60402
@ d60402 - hai un buon punto, ma se uno sviluppatore cerca un modo per creare una finestra di dialogo con più di 2 pulsanti trova questa risposta ... Avere questa opzione è molto utile perché è più flessibile con il numero di pulsanti. Per dirla in modo diverso, se i pulsanti positivi e negativi non bastano per quello che stai facendo, 3 pulsanti potrebbero diventare 4 abbastanza velocemente. Da qui i voti. –
@ d60402 Il titolo della domanda è come aggiungere un terzo pulsante, non come mostrare il pulsante neutro. –
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
this);
// set title
alertDialogBuilder.setTitle("To Do List");
// set dialog message
alertDialogBuilder
.setMessage("What do you want?")
.setCancelable(false)
.setPositiveButton("Delete All", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// if this button is clicked, close
// current activity
dialog.cancel();
}
}).setNeutralButton("Delete", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// if this button is clicked, close
// current activity
dialog.cancel();
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// if this button is clicked, just close
// the dialog box and do nothing
dialog.cancel();
}
});
// create alert dialog
AlertDialog alertDialog = alertDialogBuilder.create();
// show it
alertDialog.show();
- 1. Android: modifica l'icona della finestra di dialogo di avviso
- 2. C# WatiN - Aggiungere un AlertDialogHandler a fare clic sul pulsante OK in ogni finestra di dialogo Avviso
- 3. Aggiunta di un frammento a una finestra di dialogo
- 4. Perché la finestra di dialogo Avviso Android è NERA?
- 5. Finestra di dialogo Avviso personalizzato con RecyclerView
- 6. Come impostare il carattere personalizzato per la finestra di dialogo di avviso in Android?
- 7. Come posso visualizzare una finestra di dialogo prima di inviarla?
- 8. Come posso integrare Django con una finestra di dialogo JqueryUI?
- 9. Crea attività Android come finestra di dialogo
- 10. Android: come creare una finestra di dialogo senza un titolo?
- 11. Come posso aggiungere un'immagine a una finestra di dialogo personalizzata per WiX?
- 12. Posso chiudere una finestra di avviso sull'elenco fare clic?
- 13. Come creare una finestra di dialogo JavaFX?
- 14. Come impedire una finestra di avviso Come Chiuso da pulsante Indietro
- 15. Come chiudere una finestra di dialogo in Android a livello di programmazione?
- 16. Finestra di dialogo di allineamento come pulsante di commento
- 17. Larghezza finestra di dialogo Android
- 18. Come aggiungere un collegamento ipertestuale a una finestra di dialogo JFace
- 19. finestra di dialogo asyncTask di Android Cerchio
- 20. Come aggiungere una casella di spunta a una finestra di avviso
- 21. Finestra di dialogo Dojo con pulsante di conferma
- 22. Come visualizzare la finestra di dialogo di avanzamento in Android?
- 23. Come modificare il colore di sfondo della finestra di dialogo di avviso predefinita di Android
- 24. IME per Android: come visualizzare una finestra di dialogo popup?
- 25. Come gestire il "pulsante Indietro" su Android quando viene visualizzata una finestra di dialogo di avanzamento
- 26. attività come finestra di dialogo in Android
- 27. Finestra di dialogo Jquery: Nascondi il pulsante
- 28. Finestra di dialogo degli avvisi in Android
- 29. Come faccio a visualizzare una finestra di dialogo in Android senza un contesto di attività?
- 30. Finestra di dialogo di avviso personalizzata in risposta nativa?
Correlato: [Finestra di avviso di Android con uno, due e tre pulsanti] (https://stackoverflow.com/questions/43513919/android-alert-dialog-with-one-two-and-three-button) – Suragch