当我尝试使用ListView从Firebase检索数据时,我遇到了无限运行,而且我不知道该如何解决。
我的主要目标是从Firebase检索具有动态状态为“未批准”的客户。
这是我的跑步
10/03 21:30:58:启动应用程序$ adb shell am start -n “ com.example.atheer.booklyv1 / com.example.atheer.booklyv1.MainActivity” -a android.intent.action.MAIN -c android.intent.category.LAUNCHER客户端尚未准备好..正在等待过程在线连接到 设备模拟器-5554上的进程8309捕获和显示logcat 来自应用程序的消息。可以在 “调试器”设置页面的“ Logcat输出”部分。 W / atheer.booklyv:不会记录JIT配置文件信息: 配置文件不退出。我/聊天: uid = 10086(com.example.atheer.booklyv1)相同的10行 W / atheer.booklyv:不会记录JIT配置文件信息: 配置文件不退出。 W / atheer.booklyv:不支持的课程 加载程序W / atheer.booklyv:由于以下原因,跳过重复的类检查 不支持的类加载器W / DynamiteModule:本地模块描述符 找不到com.google.firebase.auth的类。 W / DynamiteModule:本地 找不到com.google.firebase.auth的模块描述符类。 W / atheer.booklyv:验证android.content.Intent com.google.android.gms.common.zzf.zza(android.content.Context,int, java.lang.String)花费了130.356ms I / BiChannelGoogleApi:[FirebaseAuth: ]没有回退模块;没有设置延迟初始化 D / FirebaseAuth:通知ID令牌侦听器有关用户的信息( N72Vpxaf6dao4pSf5cvBJ1jwzGo2)。 D / FirebaseApp: com.google.firebase.crash.FirebaseCrash未链接。跳过 初始化。 V / FA:取消作业。职位编号:-1422956107 V / FA: 注册的活动生命周期回调I / FirebaseInitProvider: FirebaseApp初始化成功I / InstantRun:立即启动 运行服务器:是主进程V / FA:已启用收藏V / FA:应用 包,Google应用ID:com.example.atheer.booklyv1, 1:666514046827:android:60ad4570c33e1aec I / FA:应用测量为 正在启动,版本:11910 要启用调试日志记录运行,请执行以下操作:adb shell setprop log.tag.FA VERBOSE 要启用更快的调试模式事件记录,请运行: adb shell setprop debug.firebase.analytics.app com.example.atheer.booklyv1 D / FA:启用了调试级消息日志记录 W / DynamiteModule:的本地模块描述符类 找不到com.google.firebase.auth。 V / FA:onActivityCreated V / FA: 连接到远程服务I / FirebaseAuth:[FirebaseAuth:]正在加载 通过FirebaseOptions的模块。 [FirebaseAuth:]准备创建与gms实现V / FA的服务连接:连接尝试已在进行中 W / atheer.booklyv:访问隐藏方法 Landroid / view / View;-> computeFitSystemWindows(Landroid / graphics / Rect; Landroid / graphics / Rect;)Z (浅灰色列表,反射)W / atheer.booklyv:访问隐藏方法 Landroid / view / ViewGroup;-> makeOptionalFitsSystemWindows()V(light 灰名单,反射)D / OpenGLRenderer:Skia GL Pipeline V / FA: 连接尝试已在进行中 活动已恢复,时间:1574868 I / FA:找不到标签管理器,因此将无法使用D / FirebaseApp:通知身份验证状态 听众。 D / FirebaseApp:通知0身份验证状态侦听器。 D / FA: 记录事件(FE):screen_view(_vs), Bundle [{firebase_event_origin(_o)= auto, firebase_screen_class(_sc)= MainActivity, firebase_screen_id(_si)= 5185910341027462403}] D /: HostConnection :: get()建立新的主机连接0xdeffec40,tid 8354 I / ConfigStore: android :: hardware :: configstore :: V1_0 :: ISurfaceFlingerConfigs :: hasWideColorDisplay 检索:0 android :: hardware :: configstore :: V1_0 :: ISurfaceFlingerConfigs :: hasHDRDisplay 检索:0 I / OpenGLRenderer:初始化的EGL,版本1.4 D / OpenGLRenderer:交换行为1 W / OpenGLRenderer:选择失败 使用EGL_SWAP_BEHAVIOR_PRESERVED进行配置,无需重试即可... D / OpenGLRenderer:交换行为0 D / EGL_emulation:eglCreateContext: 0xcc20f240:maj 3分钟0 rcv 3 D / EGL_emulation:eglMakeCurrent: 0xcc20f240:版本3 0(tinfo 0xe2730c60)D / EGL_emulation: eglMakeCurrent:0xcc20f240:ver 3 0(tinfo 0xe2730c60)V / FA: 连接尝试已在进行中D / FA:已连接到远程 服务V / FA:处理排队的服务任务:4 V / StudioProfiler: 附加了StudioProfilers代理。 V / StudioProfiler:获取 事件应用程序V / StudioProfiler:转换的类: java / net / URL W / atheer.booklyv:当前dex文件有多个 类。如果没有,则在此类上调用RetransformClasses可能会失败 转换已应用到它! V / StudioProfiler:内存控制 流开始。 V / StudioProfiler:实时内存跟踪已禁用。 V / StudioProfiler:启用了实时内存跟踪。 JNIEnv未附加V / StudioProfiler:加载的类:11553 V / StudioProfiler:跟踪初始化花费了: 410566000ns W / ActivityThread:handleWindowVisibility:没有活动 令牌android.os.BinderProxy@f188cbd V / FA:记录用户参与度, ms:4164 V / FA:活动已暂停,时间:1579010 V / FA:onActivityCreated I / atheer.booklyv:后台并发复制GC已释放662(4MB) AllocSpace对象,0(0B)个LOS对象,49%空闲,3MB / 6MB,已暂停 D / FA:总计1.122毫秒,总计328.178毫秒; D / FA:记录事件(FE):user_engagement(_e),Bundle [{firebase_event_origin(_o)= auto, partnership_time_msec(_et)= 4164, firebase_screen_class(_sc)= MainActivity, firebase_screen_id(_si)= 5185910341027462403}] V / FA:活动已恢复, 时间:1580197 D / FA:记录事件(FE):screen_view(_vs), Bundle [{firebase_event_origin(_o)= auto, firebase_previous_class(_pc)= MainActivity, firebase_previous_id(_pi)= 5185910341027462403, firebase_screen_class(_sc)= mHomePage, firebase_screen_id(_si)= 5185910341027462404}] D / EGL_emulation: eglMakeCurrent:0xcc20f240:ver 3 0(tinfo 0xe2730c60) W / ActivityThread:handleWindowVisibility:令牌没有活动 android.os.BinderProxy@877a26c V / FA:记录用户参与度,毫秒: 4828 V / FA:活动已暂停,时间:1585022 V / FA:onActivityCreated D / FA:记录事件(FE):user_engagement(_e), Bundle [{firebase_event_origin(_o)= auto, lation_time_msec(_et)= 4828,firebase_screen_class(_sc)= mHomePage, firebase_screen_id(_si)= 5185910341027462404}] I / DynamiteModule: 考虑本地模块com.google.android.gms.firebase_database:4 和远程模块com.google.android.gms.firebase_database:6 com.google.android.gms.firebase_database的选定远程版本,版本> = 6 V / FA:活动 恢复时间:1585685 I /编舞:跳过37帧!的 应用程序可能在其主线程上做太多工作。 W / atheer.booklyv:不支持的类加载器W / atheer.booklyv:跳过 由于不支持的类加载器D / FA,重复的类检查:日志记录 事件(FE):screen_view(_vs),捆绑包[{firebase_event_origin(_o)=自动, firebase_previous_class(_pc)= mHomePage, firebase_previous_id(_pi)= 5185910341027462404, firebase_screen_class(_sc)= loginActivity, firebase_screen_id(_si)= 5185910341027462405}] I / OpenGLRenderer:Davey! 持续时间= 916ms;标志= 1,IntendedVsync = 1585088907737, Vsync = 1585705574379,OldestInputEvent = 9223372036854775807, NewestInputEvent = 0,HandleInputStart = 1585721516670, AnimationStart = 1585721565670,PerformTraversalsStart = 1585722412670, DrawStart = 1586003516670,SyncQueued = 1586003568670, SyncStart = 1586003659670,IssueDrawCommandsStart = 1586003710670, SwapBuffers = 1586004070670,FrameCompleted = 1586005330670, DequeueBufferDuration = 162000,QueueBufferDuration = 300000, D / EGL_emulation:eglMakeCurrent:0xcc20f240:ver 3 0(tinfo 0xe2730c60)D / NetworkSecurityConfig:无网络安全配置 指定的,使用平台默认的I / AssistStructure:平整的final 辅助数据:3404字节,包含1个窗口,11个视图V / FA: 不活动,与服务I / AssistStructure断开连接: 扁平化的最终辅助数据:3428字节,包含1个窗口,11个 使用W / BiChannelGoogleApi的视图:[FirebaseAuth:] getGoogleApiForMethod() 返回的Gms D / FirebaseAuth:通知ID令牌侦听器有关用户的信息( N72Vpxaf6dao4pSf5cvBJ1jwzGo2)。 D / FirebaseApp:通知身份验证状态 听众。 D / FirebaseApp:通知1个身份验证状态侦听器。 V / FA: 记录用户参与度,毫秒:21363 V / FA:连接到远程 服务W / ActivityThread:handleWindowVisibility:没有活动 令牌android.os.BinderProxy@48f31b0 V / FA:活动已暂停,时间: 1607047 D / FA:记录事件(FE):user_engagement(_e), Bundle [{firebase_event_origin(_o)= auto, partnership_time_msec(_et)= 21363, firebase_screen_class(_sc)= loginActivity, firebase_screen_id(_si)= 5185910341027462405}] V / FA:onActivityCreated V / FA:连接尝试已在进行中I / atheer.booklyv: NativeAlloc并发复制GC已释放25494(1649KB)AllocSpace 对象,19(632KB)LOS对象,50%空闲,3MB / 7MB,总计580us 742.771ms V / FA:正在进行连接尝试V / FA:活动已恢复,时间:1608103 D / FA:记录事件(FE):screen_view(_vs), Bundle [{firebase_event_origin(_o)= auto, firebase_previous_class(_pc)=登录活动, firebase_previous_id(_pi)= 5185910341027462405, firebase_screen_class(_sc)= dashboardAdmin, firebase_screen_id(_si)= 5185910341027462406}] D / EGL_emulation: eglMakeCurrent:0xcc20f240:ver 3 0(tinfo 0xe2730c60)V / FA: 连接尝试已在进行中D / FA:已连接到远程 服务V / FA:处理排队的服务任务:4 W / ActivityThread: handleWindowVisibility:令牌没有活动 android.os.BinderProxy@7f475a4 V / FA:记录用户参与度,毫秒: 5136 V / FA:活动已暂停,时间:1613235 D / FA:记录事件(FE): user_engagement(_e),捆绑包[{firebase_event_origin(_o)=自动, partnership_time_msec(_et)= 5136, firebase_screen_class(_sc)= dashboardAdmin, firebase_screen_id(_si)= 5185910341027462406}] V / FA:onActivityCreated V / FA:恢复活动,时间:1613594 D / FA:记录事件(FE): screen_view(_vs),捆绑包[{firebase_event_origin(_o)=自动, firebase_previous_class(_pc)= dashboardAdmin, firebase_previous_id(_pi)= 5185910341027462406, firebase_screen_class(_sc)= approvedAdmin, firebase_screen_id(_si)= 5185910341027462407}] D / EGL_emulation: eglMakeCurrent:0xcc20f240:ver 3 0(tinfo 0xe2730c60) D / EGL_emulation:eglMakeCurrent:0xcc20f240:ver 3 0(tinfo 0xe2730c60)W / atheer.booklyv:长时间等待5.943毫秒 Thread [1,tid = 8309,Native,Thread * = 0xe6674000,peer = 0x738f9ec8,“ main”] 悬挂! D / EGL_emulation:eglMakeCurrent:0xcc20f240:ver 3 0 (tinfo 0xe2730c60)D / EGL_emulation:eglMakeCurrent:0xcc20f240:ver 3 0(tinfo 0xe2730c60)D / EGL_emulation:eglMakeCurrent:0xcc20f240:ver 3 0(tinfo 0xe2730c60)V / FA:处于不活动状态,与 服务E / StudioProfiler:JVMTI错误: 15(JVMTI_ERROR_THREAD_NOT_ALIVE)I /聊天: uid = 10086(com.example.atheer.booklyv1)活页夹:8309_5相同的3行 E / StudioProfiler:JVMTI错误:15(JVMTI_ERROR_THREAD_NOT_ALIVE) I / FirebaseAuth:[FirebaseAuth:]通过FirebaseOptions加载模块。 I / FirebaseAuth:[FirebaseAuth:]正在准备创建服务连接 到gms实施
这是我的Java代码
package com.example.atheer.booklyv1;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.google.firebase.database.ChildEventListener;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import java.util.ArrayList;
import java.util.Map;
public class approvedAdmin extends AppCompatActivity implements View.OnClickListener{
DatabaseReference dref;
ListView listview;
ArrayList<String> list=new ArrayList<>();
ArrayAdapter<String> adapter;
public approvedAdmin() {
}
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_approved_admin);
listview=(ListView)findViewById(R.id.list);
dref= FirebaseDatabase.getInstance().getReference("client");
// adapter.notifyDataSetChanged();
dref.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
String status;
String name;
String email;
Toast.makeText(approvedAdmin.this, "ok", Toast.LENGTH_SHORT).show();
for(DataSnapshot ds: dataSnapshot.getChildren() ){
if (ds.hasChild("Status")){
status=ds.child("Status").getValue(String.class);
if (status.equalsIgnoreCase("Not approved")){
name= ds.child("name").getValue(String.class);
list.add(name);
adapter= new ArrayAdapter<String>(approvedAdmin.this, android.R.layout.simple_list_item_1, list);
listview.setAdapter(adapter);
}}
}}
@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) {
}
});
}
@Override
public void onClick(View v) {
}
}
这是我的xml代码
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".approvedAdmin">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:orientation="vertical"
android:paddingLeft="15dp"
android:paddingRight="15dp">
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</LinearLayout>
</android.support.constraint.ConstraintLayout>
答案 0 :(得分:0)
您需要像下面那样从for循环中移出设置适配器代码
for(DataSnapshot ds: dataSnapshot.getChildren() ){
if (ds.hasChild("Status")){
status=ds.child("Status").getValue(String.class);
if (status.equalsIgnoreCase("Not approved")){
name= ds.child("name").getValue(String.class);
list.add(name);
}
}
}
adapter= new ArrayAdapter<String>(approvedAdmin.this, android.R.layout.simple_list_item_1, list);
listview.setAdapter(adapter);
您还需要将列表视图ID从android:id="@android:id/list"
更改为android:id="@+id/list"