I am fetching data from json url and displaying it into recyclerview but i am getting this error. Adapter is attached but it always showing that no adapter attached.
Error:
04-14 18:23:32.758 24038-24038/com.example.englishgaane E/RecyclerView: No adapter attached; skipping layout
04-14 18:23:32.758 24038-24038/com.example.englishgaane I/Choreographer: Skipped 41 frames! The application may be doing too much work on its main thread. 04-14 18:23:33.158 24038-24038/com.example.englishgaane E/RecyclerView: No adapter attached; skipping layout
MainActivity Code:
@Override
protected void onCreate(Bundle savedInstanceState) {
SliderView sliderView;
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
recyclerView = findViewById(R.id.recyclerview);
recyclerView.setAdapter(adapter);
sliderView = findViewById(R.id.imageSlider);
newModels = new ArrayList<>();
extractdata();
TypedArray sliderimages = getResources().obtainTypedArray(R.array.artist_images);
sliderModels = new ArrayList<>();
for(int i =0; i<sliderimages.length(); i++){
SliderModel sliderModel = new SliderModel(sliderimages.getResourceId(i, 0));
sliderModels.add(sliderModel);
}
SlideAdapter adapter1 = new SlideAdapter(sliderModels, this);
sliderView.setSliderAdapter(adapter1);
sliderView.setIndicatorAnimation(IndicatorAnimations.WORM);
sliderView.setSliderTransformAnimation(SliderAnimations.SIMPLETRANSFORMATION);
sliderView.setAutoCycleDirection(SliderView.AUTO_CYCLE_DIRECTION_BACK_AND_FORTH);
sliderView.setIndicatorSelectedColor(Color.RED);
sliderView.setIndicatorUnselectedColor(Color.BLACK);
sliderView.setScrollTimeInSec(2);
sliderView.startAutoCycle();
}
public void extractdata() {
RequestQueue queue = Volley.newRequestQueue(this);
StringRequest request = new StringRequest(Request.Method.GET, JSON_URL, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject object = new JSONObject(response);
JSONArray array = object.getJSONArray("artist_data");
JSONArray array1 = object.getJSONArray("all_data");
Singleton.getConstant().addarray(array1);
TypedArray images = getResources().obtainTypedArray(R.array.artist_images);
for (int i = 0; i < array.length(); i++) {
JSONObject object1 = array.getJSONObject(i);
String name = object1.getString("artist");
NewModel newModel = new NewModel(images.getResourceId(i, 0), name);
newModels.add(newModel);
}
LinearLayoutManager linearLayoutManager2 = new LinearLayoutManager(getApplicationContext(), LinearLayoutManager.HORIZONTAL, false);
recyclerView.setLayoutManager(linearLayoutManager2);
recyclerView.setItemAnimator(new DefaultItemAnimator());
adapter = new RecyclerAdapter(newModels, getApplicationContext(), clickinterface);
adapter.notifyDataSetChanged();
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d("tag", "OnErrorResponse"+error.getMessage());
}
});
queue.add(request);
}
}