title: RecyclerView: No adapter attached; skipping layout in Recycler Android
body: <p>I'm using <code>Recycle</code> to get data from JSon URL include <code>TextView</code> and <code>ImageView</code>
  I have some classes: <code>Activity</code>, <code>POJO</code> and <code>Adapter</code>.</p>
  
  <p>This my source code: (<strong>UPDATED</strong>)</p>
  
  <pre><code>public class PartOneActivity extends AppCompatActivity {
  
  private EditText editTextSearcch;
  
  List&lt;GetDataAdapter&gt; GetDataAdapter1;
  RecyclerView recyclerView;
  RecyclerView.LayoutManager recyclerViewlayoutManager;
  RecyclerView.Adapter recyclerViewadapter;
  String GET_JSON_DATA_HTTP_URL = "myURL";
  String JSON_IMAGE_TITLE_NAME = "name";
  String JSON_IMAGE_URL = "thumb";
  JsonArrayRequest jsonArrayRequest ;
  RequestQueue requestQueue ;
  
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      setTheme(R.style.AppThemeRed);
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
  
      Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
      setSupportActionBar(toolbar);
  
      initEditTextSearch();
      initRecyclerView();
  }
  
  private void initEditTextSearch() {
      /*mToolbar = (Toolbar) findViewById(R.id.toolbar);
      setSupportActionBar(mToolbar);
      setTitle(getString(R.string.app_name));
      mToolbar.setTitleTextColor(getResources().getColor(android.R.color.white));*/
  
      editTextSearcch = (EditText) findViewById(R.id.editTextSearch);
      editTextSearcch.setVisibility(View.VISIBLE);
  }
  
  private void initRecyclerView() {
  
      /*
      RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
      recyclerView.setLayoutManager(new LinearLayoutManager(this));
      RecyclerAdapter recyclerAdapter = new RecyclerAdapter(createItemList());
      recyclerView.setAdapter(recyclerAdapter);
      */
  
      GetDataAdapter1 = new ArrayList&lt;&gt;();
      recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
      recyclerViewadapter = new RecyclerViewAdapter(GetDataAdapter1, this);
      recyclerView.setAdapter(recyclerViewadapter);
      // recyclerView.setHasFixedSize(true);
      recyclerViewlayoutManager = new LinearLayoutManager(this);
      recyclerView.setLayoutManager(recyclerViewlayoutManager);
      // JSON_DATA_WEB_CALL();
      json_data_web_call();
  
      recyclerView.addOnScrollListener(new HidingScrollListener() {
          @Override
          public void onHide() {
              hideViews();
          }
  
          @Override
          public void onShow() {
              showViews();
          }
      });
  }
  
  private void hideViews() {
      editTextSearcch.animate().translationY(-editTextSearcch.getHeight()).setInterpolator(new AccelerateInterpolator(2));
  }
  
  private void showViews() {
      editTextSearcch.animate().translationY(0).setInterpolator(new DecelerateInterpolator(2));
  }
  
  
  
  public void json_data_web_call(){
  
      jsonArrayRequest = new JsonArrayRequest(GET_JSON_DATA_HTTP_URL,
  
              new Response.Listener&lt;JSONArray&gt;() {
                  @Override
                  public void onResponse(JSONArray response) {
  
                      json_parse_data_after_webcall(response);
                  }
              },
              new Response.ErrorListener() {
                  @Override
                  public void onErrorResponse(VolleyError error) {
  
                  }
              });
  
      requestQueue = Volley.newRequestQueue(this);
  
      requestQueue.add(jsonArrayRequest);
  }
  
  public void json_parse_data_after_webcall(JSONArray array){
  
      for(int i = 0; i&lt;array.length(); i++) {
  
          GetDataAdapter GetDataAdapter2 = new GetDataAdapter();
  
          JSONObject json = null;
          try {
  
              json = array.getJSONObject(i);
  
              GetDataAdapter2.setImageTitleNamee(json.getString(JSON_IMAGE_TITLE_NAME));
  
              GetDataAdapter2.setImageServerUrl(json.getString(JSON_IMAGE_URL));
  
          } catch (JSONException e) {
  
              e.printStackTrace();
          }
          GetDataAdapter1.add(GetDataAdapter2);
  
      }
      recyclerViewadapter.set(GetDataAdapter1);   //may need to add a setter in adapter
      recyclerViewadapter.notifyDataSetChanged();
      // recyclerViewadapter = new RecyclerViewAdapter(GetDataAdapter1, this);
      // recyclerView.setAdapter(recyclerViewadapter);
    } 
  }
  </code></pre>
  
  <p>RecyclerViewAdapter class:</p>
  
  <pre><code>public class RecyclerViewAdapter extends RecyclerView.Adapter&lt;RecyclerViewAdapter.ViewHolder&gt; {
  
  private static final int TYPE_HEADER = 4;
  private static final int TYPE_ITEM = 1;
  
  Context context;
  List&lt;GetDataAdapter&gt; getDataAdapter;
  ImageLoader imageLoader1;
  
  public RecyclerViewAdapter(List&lt;GetDataAdapter&gt; getDataAdapter, Context context){
      super();
      this.getDataAdapter = getDataAdapter;
      this.context = context;
  }
  
  @Override
  public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
  
      View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.recyclerview_items, parent, false);
      ViewHolder viewHolder = new ViewHolder(v);
      return viewHolder;
  }
  
  @Override
  public void onBindViewHolder(ViewHolder Viewholder, int position) {
      if (!isPositionHeader(position)) {
          GetDataAdapter getDataAdapter1 = getDataAdapter.get(position - 1);
          imageLoader1 = ServerImageParseAdapter.getInstance(context).getImageLoader();
          imageLoader1.get(getDataAdapter1.getImageServerUrl(),
                  ImageLoader.getImageListener(
                          Viewholder.networkImageView,//Server Image
                          R.mipmap.ic_launcher,//Before loading server image the default showing image.
                          android.R.drawable.ic_dialog_alert //Error image if requested image dose not found on server.
                  )
          );        Viewholder.networkImageView.setImageUrl(getDataAdapter1.getImageServerUrl(), imageLoader1);
  
      Viewholder.ImageTitleNameView.setText(getDataAdapter1.getImageTitleName());
      }
  }
  
  public int getDataAdapter() {
      return getDataAdapter == null ? 0 : getDataAdapter.size();
  }
  
  @Override
  public int getItemViewType(int position) {
      if (isPositionHeader(position)) {
          return TYPE_HEADER;
      }
  
      return TYPE_ITEM;
  }
  
  @Override
  public int getItemCount() {
  
      return getDataAdapter() + 1;
  }
  
  private boolean isPositionHeader(int position) {
      return position == 0;
  }
  
  
  class ViewHolder extends RecyclerView.ViewHolder{
  
      public TextView ImageTitleNameView;
      public NetworkImageView networkImageView ;
  
      public ViewHolder(View itemView) {
  
          super(itemView);
  
          ImageTitleNameView = (TextView) itemView.findViewById(R.id.textView_item) ;
  
          networkImageView = (NetworkImageView) itemView.findViewById(R.id.VollyNetworkImageView1) ;
  
      }
  }
  </code></pre>
  
  <p>}</p>
  
  <p>When I build I see <code>Recycler</code> can not load <code>TextView</code> and <code>ImageView</code>, and <code>CatLog</code> appear an exception following as:</p>
  
  <pre><code>E/RecyclerView: No adapter attached; skipping layout
  E/RecyclerView: No adapter attached; skipping layout
  </code></pre>
  
  <p>How to fix this exception ?</p>