首页 > 解决方案 > 无法在屏幕上加载数据错误 - E/RecyclerView:未连接适配器;跳过布局

问题描述

相同的代码以前可以工作。不要现在为什么它现在不起作用。使用 Android 编译和目标 SDK 为 27。

我已在https://www.dropbox.com/sh/bg0bsadqpb9e034/AADlEdpXlP6nRLr6U5J1YI3sa?dl=0上传了该项目的所有必需的 7 个文件

implementation 'com.android.support:recyclerview-v7:27.1.1'
implementation 'com.android.volley:volley:1.1.1'
implementation 'com.google.code.gson:gson:2.8.5'
implementation 'com.android.support:cardview-v7:27.1.1'
implementation 'com.github.bumptech.glide:glide:4.7.1'

这就是我写的。

package com.example.sampleusers;

import android.app.Activity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.widget.Toast;

import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

public class MainActivity extends Activity {

    private static final String URL = "https://api.github.com/users";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final RecyclerView UsersList = (RecyclerView) findViewById(R.id.usersList);
        UsersList.setLayoutManager(new LinearLayoutManager(this));

        StringRequest request = new StringRequest(URL, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                Log.d("CODE", response);

                GsonBuilder gsonBuilder = new GsonBuilder();
                Gson gson = gsonBuilder.create();

                User[] users = gson.fromJson(response, User[].class);
                UsersList.setAdapter(new GithubAdaptor(MainActivity.this, users));
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Toast.makeText(MainActivity.this, "Something went wrong", Toast.LENGTH_SHORT).show();
            }
        });

        RequestQueue queue = Volley.newRequestQueue(this);
        queue.add(request);
    }
}

我正在设置适配器,但屏幕上没有数据。

日志猫:

- 08-05 15:45:45.353 6637-6637/com.example.sampleusers D/dalvikvm: Late-enabling CheckJNI
- 08-05 15:45:45.497 6637-6637/com.example.sampleusers I/dalvikvm: Could not find method android.view.ViewConfiguration.getScaledHorizontalScrollFactor, referenced from method android.support.v4.view.ViewConfigurationCompat.getScaledHorizontalScrollFactor
- 08-05 15:45:45.501 6637-6637/com.example.sampleusers W/dalvikvm: VFY: unable to resolve virtual method 11229: Landroid/view/ViewConfiguration;.getScaledHorizontalScrollFactor ()F
- 08-05 15:45:45.501 6637-6637/com.example.sampleusers D/dalvikvm: VFY: replacing opcode 0x6e at 0x0006
- 08-05 15:45:45.501 6637-6637/com.example.sampleusers I/dalvikvm: Could not find method android.view.ViewConfiguration.getScaledVerticalScrollFactor, referenced from method android.support.v4.view.ViewConfigurationCompat.getScaledVerticalScrollFactor
- 08-05 15:45:45.501 6637-6637/com.example.sampleusers W/dalvikvm: VFY: unable to resolve virtual method 11234: Landroid/view/ViewConfiguration;.getScaledVerticalScrollFactor ()F
- 08-05 15:45:45.501 6637-6637/com.example.sampleusers D/dalvikvm: VFY: replacing opcode 0x6e at 0x0006
- 08-05 15:45:45.737 6637-6637/com.example.sampleusers D/libEGL: loaded /system/lib/egl/libEGL_emulation.so
- 08-05 15:45:45.741 6637-6637/com.example.sampleusers D/libEGL: loaded /system/lib/egl/libGLESv1_CM_emulation.so
- 08-05 15:45:45.745 6637-6637/com.example.sampleusers D/libEGL: loaded /system/lib/egl/libGLESv2_emulation.so
-     Process pipe failed
- 08-05 15:45:46.021 6637-6637/com.example.sampleusers D/EGL_emulation: eglCreateContext: 0xb8834e78: maj 2 min 0 rcv 2
- 08-05 15:45:46.205 6637-6637/com.example.sampleusers E/EGL_emulation: tid 6637: eglSurfaceAttrib(1210): error 0x3009 (EGL_BAD_MATCH)
- 08-05 15:45:46.209 6637-6637/com.example.sampleusers W/HardwareRenderer: Backbuffer cannot be preserved
- 08-05 15:45:46.209 6637-6637/com.example.sampleusers E/OpenGLRenderer: Getting MAX_TEXTURE_SIZE from GradienCache
-     MAX_TEXTURE_SIZE: 16384
- 08-05 15:45:46.277 6637-6637/com.example.sampleusers E/OpenGLRenderer: Getting MAX_TEXTURE_SIZE from Caches::initConstraints()
-     MAX_TEXTURE_SIZE: 16384
- 08-05 15:45:46.277 6637-6637/com.example.sampleusers D/OpenGLRenderer: Enabling debug mode 0
- 08-05 15:45:46.293 6637-6637/com.example.sampleusers E/RecyclerView: No adapter attached; skipping layout
- 08-05 15:45:46.321 6637-6637/com.example.sampleusers D/dalvikvm: GC_FOR_ALLOC freed 225K, 10% free 3133K/3480K, paused 7ms, total 7ms
- 08-05 15:45:46.325 6637-6637/com.example.sampleusers E/RecyclerView: No adapter attached; skipping layout

标签: javaandroidfirebaseandroid-recyclerview

解决方案


推荐阅读