
我希望活动必须在从Firebase数据库获取数据时显示进度对话框.它没有显示任何内容并且崩溃了.这是我的代码如下
public class profilemain扩展AppCompatActivity {
private FirebaseAuth mAuth;private FirebaseAuth.AuthStateListener mAuthListener; private ProgressDialog progressDialog;DatabaseReference mref = FirebaseDatabase.getInstance().getReference("users");ListVIEw mListvIEw;ArrayList<String> arrayList=new ArrayList<>();ArrayAdapter<String> arrayAdapter;private BottomNavigationVIEw.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener = new BottomNavigationVIEw.OnNavigationItemSelectedListener() { @OverrIDe public boolean onNavigationItemSelected(@NonNull MenuItem item) { switch (item.getItemID()) { case R.ID.navigation_home:progressDialog.show(); startActivity(new Intent(profilemain.this,profilemain.class)); return true; case R.ID.navigation_dashboard: Toast.makeText(profilemain.this,"hi hello",Toast.LENGTH_SHORT).show(); return true; case R.ID.navigation_notifications: Toast.makeText(profilemain.this,"hi hello",Toast.LENGTH_SHORT).show(); return true; case R.ID.navigation_signout: Toast.makeText(profilemain.this,"You have successfully Signed out",Toast.LENGTH_SHORT).show(); mAuth.signOut(); return true; } return false; }};@OverrIDeprotected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_profilemain); progressDialog.setMessage("loading"); progressDialog.setTitle("database is"); mListvIEw=(ListVIEw) findVIEwByID(R.ID.ListvIEw); Firebase.setAndroIDContext(this); DatabaseReference ref = FirebaseDatabase.getInstance() .getReference("users"); //mref=new Firebase("https://stark-1dffd.firebaseio.com/users"); arrayAdapter=new ArrayAdapter<String>(this,androID.R.layout.simple_List_item_1,arrayList); mListvIEw.setAdapter(arrayAdapter); mref.addChildEventListener(new ChildEventListener() { @OverrIDe public voID onChildAdded(DataSnapshot dataSnapshot, String s) { String value= dataSnapshot.getValue(String.class); arrayList.add(value); arrayAdapter.notifyDataSetChanged(); // // } @OverrIDe public voID onChildChanged(DataSnapshot dataSnapshot, String s) { } @OverrIDe public voID onChildRemoved(DataSnapshot dataSnapshot) { } @OverrIDe public voID onChildMoved(DataSnapshot dataSnapshot, String s) { } @OverrIDe public voID onCancelled(DatabaseError databaseError) { } }); BottomNavigationVIEw navigation = (BottomNavigationVIEw) findVIEwByID(R.ID.navigation); navigation.setonNavigationItemSelectedListener(mOnNavigationItemSelectedListener); mAuth = FirebaseAuth.getInstance(); mAuthListener = new FirebaseAuth.AuthStateListener() { @OverrIDe public voID onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { if (firebaseAuth.getCurrentUser()==null){ startActivity(new Intent(profilemain.this,MainActivity.class)); } } };}@OverrIDeprotected voID onStart() { super.onStart(); mAuth.addAuthStateListener(mAuthListener);} Process: com.food.sheenishere.stark, PID: 16408com.Google.firebase.database.DatabaseException: Failed to convert value of type java.util.HashMap to Stringat com.Google.androID.gms.internal.zg.zzb(UnkNown Source)at com.Google.androID.gms.internal.zg.zza(UnkNown Source)at com.Google.firebase.database.DataSnapshot.getValue(UnkNown Source)at com.food.sheenishere.stark.home.onChildAdded(home.java:49)at com.Google.androID.gms.internal.px.zza(UnkNown Source)at com.Google.androID.gms.internal.vj.zzHX(UnkNown Source) at com.Google.androID.gms.internal.vp.run(UnkNown Source)at androID.os.Handler.handleCallback(Handler.java:751)at androID.os.Handler.dispatchMessage(Handler.java:95)at androID.os.Looper.loop(Looper.java:154)at androID.app.ActivityThread.main(ActivityThread.java:6119)at java.lang.reflect.Method.invoke(Native Method) at com.androID.internal.os.ZygoteInit $MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:776)07-15 20:49:51.645 16408-16435/com.food.sheenishere.stark W/DynamiteModule: Local module descriptor class for com.Google.firebase.auth not found.解决方法:
您的代码中的问题是您正在尝试在从未初始化的ProgressDialog对象上使用show(),setMessage(“loading”)和setTitle(“database is”)方法.
为了解决您的问题,您需要使用以下代码:
ProgressDialog progressDialog = new ProgressDialog(this);它肯定会解决你的问题.
总结以上是内存溢出为你收集整理的android – 从firebase数据库中获取数据时显示进度对话框全部内容,希望文章能够帮你解决android – 从firebase数据库中获取数据时显示进度对话框所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)