Я хочу отобразить окно сообщения с кнопкой ОК. Я использовал следующий код, но он приводит к ошибке компиляции с аргументом:
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();
Как мне отобразить окно сообщения в Android?
android
messagebox
Раджкумар Редди
источник
источник
<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="15" />
как-то связаны с тем, почему я не получил никакой ошибки компиляции, которую вы предлагаете.Ответы:
Я думаю, что может быть проблема, что вы не добавили прослушиватель кликов для положительной кнопки ОК.
dlgAlert.setPositiveButton("Ok", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { //dismiss the dialog } });
источник
Поскольку в вашей ситуации вы хотите уведомить пользователя только коротким и простым сообщением, a
Toast
будет способствовать лучшему взаимодействию с пользователем.Toast.makeText(getApplicationContext(), "Data saved", Toast.LENGTH_LONG).show();
Если у вас более длинное сообщение, которое вы хотите дать читателю, чтобы прочитать и понять, тогда вам следует использовать расширение
DialogFragment
. (В настоящее время документация рекомендует заключить васAlertDialog
во фрагмент, а не вызывать его напрямую.)Создайте класс, который расширяется
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(); } }
Затем вызовите его, когда он вам понадобится в вашей деятельности:
DialogFragment dialog = new MyDialogFragment(); dialog.show(getSupportFragmentManager(), "MyDialogFragmentTag");
Смотрите также
источник
Код компилируется для меня нормально. Возможно, вы забыли добавить импорт:
import android.app.AlertDialog;
Во всяком случае, у вас есть хороший учебник здесь .
источник
@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
источник