我有非活動類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();
}
}
嘗試在代替builder.create的'創建AlertDialog'的'一個實例()表示();'這樣的: 'AlertDialog對話框= builder.create();'' dialog.show(); ' –
沒有任何改變。結果是相同 –
at'try ... catch;'level是否能夠獲得調試日誌或敬酒?因爲如果你是那麼問題在於警報對話框,如果你不能然後將你的調試級別移動到「偵聽器」等... –