Je veux afficher une boîte de message avec un bouton OK. J’ai utilisé le code suivant mais il en résulte une erreur de compilation avec argument:
AlertDialog.Builder dlgAlert = new AlertDialog.Builder(this); dlgAlert.setMessage("This is an alert with no consequence"); dlgAlert.setTitle("App Title"); dlgAlert.setPositiveButton("OK", null); dlgAlert.setCancelable(true); dlgAlert.create().show();
Comment devrais-je afficher un message dans Android?
Je pense qu’il peut y avoir un problème que vous n’avez pas ajouté cliquez sur auditeur pour le bouton positif ok.
dlgAlert.setPositiveButton("Ok", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { //dismiss the dialog } });
Étant donné que, dans votre situation, vous souhaitez uniquement notifier à l’utilisateur un message court et simple, un Toast
une meilleure expérience utilisateur.
Toast.makeText(getApplicationContext(), "Data saved", Toast.LENGTH_LONG).show();
Si vous avez un message plus long que vous souhaitez donner au lecteur le temps de lire et de comprendre, vous devez utiliser un DialogFragment
. (La documentation recommande actuellement d’envelopper votre AlertDialog
dans un fragment plutôt que de l’appeler directement).
Créer une classe qui étend DialogFragment
:
public class MyDialogFragment extends DialogFragment { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { // Use the Builder class for convenient dialog construction AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle("App Title"); builder.setMessage("This is an alert with no consequence"); builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { // You don't have to do anything here if you just // want it dismissed when clicked } }); // Create the AlertDialog object and return it return builder.create(); } }
Alors appelez-le quand vous en avez besoin dans votre activité:
DialogFragment dialog = new MyDialogFragment(); dialog.show(getSupportFragmentManager(), "MyDialogFragmentTag");
Le code comstack ok pour moi. Peut-être que vous avez oublié d’append l’importation:
import android.app.AlertDialog;
De toute façon, vous avez un bon tutoriel ici .
@Override protected Dialog onCreateDialog(int id) { switch(id) { case 0: { return new AlertDialog.Builder(this) .setMessage("text here") .setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface arg0, int arg1) { try { }//end try catch(Exception e) { Toast.makeText(getBaseContext(), "", Toast.LENGTH_LONG).show(); }//end catch }//end onClick() }).create(); }//end case }//end switch return null; }//end onCreateDialog