У меня есть класс non-activity MenuHandler
для обработки событий, связанных с меню, Я пытаюсь отобразить сообщение разработчиков в диалоговом окне предупреждения, это сообщение извлекает из базы данных реального времени firebase
.Нет ошибок, но предупреждение не отображается
Все нормально, но диалоговое окно предупреждения не отображается, я пытаюсь отладчика проверить там какие-либо ошибки в базе данных, но я получил правильное значение из базы данных. Нет Ошибка получения значения из базы данных.
Когда я выбираю меню из MainActivity
, developerMessage
тосты показывают, что ничего не произошло.
Прошел context
до MenuHandler
класс надлежащим образом. Могу ли я показать Alerdialog
в контексте? или мне нужно написать код только в MainActivity
(т. Е. Только класс активности).
Код:
public void developersMessage()
{
if (isInternetOn()) {
Toast.makeText(mContext,"Loading message please wait",Toast.LENGTH_SHORT).show();
DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference();
mDatabase.child("version_1_0").child("dev").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
try {
final AlertDialog.Builder builder = new AlertDialog.Builder(mContext, R.style.AppCompatAlertDialogStyle);
builder.setTitle(mContext.getString(R.string.welcome_msg));
builder.setMessage(dataSnapshot.child("dev_msg").getValue(String.class));
builder.setPositiveButton("ok",null);
builder.create().show();
}
catch (Exception e)
{
e.printStackTrace();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
else
{
Toast.makeText(mContext,"please turn on internet ",Toast.LENGTH_SHORT).show();
}
}
Попробуйте создать экземпляр 'AlertDialog' вместо' builder.create() шоу() ', как это:. ' AlertDialog диалог = builder.create() '' dialog.show(); ' –
ничего не изменилось. результат такой же –
на уровне 'try ... catch', вы можете получить отладочные журналы или тосты? Потому что если вы в этом случае, то проблема заключается в диалоговом окне предупреждения, если вы не можете переместить отладку уровня до 'listener' и т. Д. –