Решил создасть свой Dialog в andriod. Знания получал из официальной документации. Но, как оказалось здесь есть подвох. Если следовать рекомендациям из документации Creating a Custom Dialog, то всегда получаю ошибку:
ошибку вызывает метод:
Причина в том, что конструктору объекта
Фиксится достаточно легко. Меняем
Думаю данную неточность исправят в документации позже, но будьте внимательны.
Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
ошибку вызывает метод:
@Override
protected Dialog onCreateDialog(int id) {
Context mContext = getApplicationContext();
Dialog dialog = new Dialog(mContext);
dialog.setContentView(R.layout.quicklog);
dialog.setTitle("Custom Dialog");
TextView text = (TextView) dialog.findViewById(R.id.text);
text.setText("Hello, this is a custom dialog!");
return dialog;
}
Причина в том, что конструктору объекта
Dialog
передается не правильный контекст:Context mContext = getApplicationContext();
Dialog dialog = new Dialog(mContext);
Фиксится достаточно легко. Меняем
getApplicationContext()
на this
:Dialog dialog = new Dialog(this);
Думаю данную неточность исправят в документации позже, но будьте внимательны.