메뉴 관련 이벤트를 처리하기 위해 비 활동 등급 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(); ' –
변경된 사항이 없습니다. 결과는 디버그 로그 나 토스트를 얻을 수있는 'try ... catch;'수준에서 –
과 동일합니까? 왜냐하면 만약 당신이 그때 문제는 경고 대화와 거짓말, 그때 당신은 디버거 레벨 등 '청취자까지 등을 움직일 수 없다 ... –