RecyclerView:没有附加适配器;跳过布局 - 回收查看错误
它给我“RecyclerView:没有适配器连接;跳过布局”错误,但在我看来适配器是正确连接。请帮忙。RecyclerView:没有附加适配器;跳过布局 - 回收查看错误
public class MainActivity extends AppCompatActivity {
private final String TAG = "MainActivity";
private RecyclerView recyclerView;
private LinearLayoutManager layoutManager;
private RecyclerViewAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = (RecyclerView)findViewById(R.id.recycler_view);
layoutManager = new LinearLayoutManager(MainActivity.this);
recyclerView.setLayoutManager(layoutManager);
requestJsonObject();
}
private void requestJsonObject(){
RequestQueue queue = Volley.newRequestQueue(this);
String url ="https://api.myjson.com/bins/2t4j3";
StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d(TAG, "Response " + response);
GsonBuilder builder = new GsonBuilder();
Gson mGson = builder.create();
List<ItemObject> posts = new ArrayList<ItemObject>();
posts = Arrays.asList(mGson.fromJson(response, ItemObject[].class));
adapter = new RecyclerViewAdapter(MainActivity.this, posts);
recyclerView.setAdapter(adapter);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d(TAG, "Error " + error.getMessage());
}
});
queue.add(stringRequest);
}
}
我正在移动我的方法,但它不工作。我在这里寻找答案,但只有错误的实施适配器的问题。我不知道这里有什么问题。
试着把这行:
adapter = new RecyclerViewAdapter(MainActivity.this, posts);
添加LayoutManager
到RecyclerView
后。当然,该列表将是空的,只是初始化RecyclerAdapter
并将其分配给RecyclerView
然后,当Volley
完成它的要求,使用:
recyclerView.getAdapter().addAll(posts);
recyclerView.getAdapter().notifyDataSetChaged();
最后的命令添加元素到RecyclerView
的适配器并通知LayoutManager
的变化。
您在延迟线程中致电setAdapter
。在主线程中创建视图时,Recyclerview
没有适配器。
前setLayoutManager
List<ItemObject> posts = new ArrayList<ItemObject>();
adapter = new RecyclerViewAdapter(MainActivity.this, posts);
将这个两行onResponse
,您可以西尔设置一个新的适配卡或更新数据,其中取决于具体的实现适配器。
对不起,但它不工作:/我在布局管理器之前/之后像布局管理器之前/之后移动适配器,但它不工作 – Tom
我layoutAdapter之前layoutManager和错误消失,但应用程序不工作,它只显示空格和日志猫是明确的:/ https://scontent-fra3-1.xx.fbcdn.net/v/t34.0-12/13624505_1107401415965387_789590380_n.png?oh=a78e6331d61e135edd4cd9c757b85698&oe=577F9CFC – Tom
你应该在onResponse中保留'setAdapter'(这意味着两个调用),或者在适配器中更新你的列表并调用notifyDataSetChaged()'' – Joshua
发表您的完整代码和logcat也 –