Как добавить окно сообщения с кнопкой "ОК"?
Я хочу отобразить окно сообщения с кнопкой OK. Я использовал следующий код, но это приводит к ошибке компиляции с аргументом:
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?
Ответы
Ответ 1
Я думаю, что может возникнуть проблема в том, что вы не добавили кликер для положительной положительной кнопки.
dlgAlert.setPositiveButton("Ok",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//dismiss the dialog
}
});
Ответ 2
Поскольку в вашей ситуации вы хотите только уведомить пользователя коротким и простым сообщением, Toast
поможет улучшить взаимодействие с пользователем.
Toast.makeText(getApplicationContext(), "Data saved", Toast.LENGTH_LONG).show();
Обновление: рекомендуется использовать Snackbar вместо приложений Toast for Material Design.
Если у вас есть более длинное сообщение, которое вы хотите дать читателю время, чтобы прочитать и понять, тогда вы должны использовать DialogFragment
. (Документация в настоящее время рекомендует AlertDialog
ваш 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");
Смотрите также
![enter image description here]()
Ответ 3
Код компилируется для меня. Возможно, вы забыли добавить импорт:
import android.app.AlertDialog;
В любом случае, у вас есть хороший учебник здесь.
Ответ 4
@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