私はこのエラーに関する記事をほとんど紹介していませんが、誰も私の問題を解決できませんでした。私は以下を示している改造を使用して、私の値を取得フラグメントいますRecyclerView:アダプタが接続されていません。レイアウトをスキップするエラー
public class Tab extends Fragment
{
public String nlink;
public RecyclerView recycler;
public List<Initialise> item;
public Adapter adapter;
public Context mContext;
public Tab(Context mContext)
{
this.mContext=mContext;
}
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState)
{
View v= inflater.inflate(R.layout.tab_layout,container,false);
item = new ArrayList<>();
recycler=(RecyclerView)v.findViewById(R.id.recycler);
recycler.setHasFixedSize(true);
LinearLayoutManager llm = new LinearLayoutManager(getContext());
llm.setOrientation(LinearLayoutManager.VERTICAL);
recycler.setLayoutManager(llm);
recycler.setItemAnimator(new DefaultItemAnimator());
adapter = new Adapter(item,mContext);
recycler.setAdapter(adapter);
return v;
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState)
{
super.onViewCreated(view, savedInstanceState);
Bundle bundle=getArguments();
nlink=bundle.getString("link");
Retrofit adapter = new Retrofit.Builder()
.baseUrl(ItemAdapter.ROOT_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
Service Serviceapi = adapter.create(Service.class);
Serviceapi.getitem(nlink).enqueue(new Callback<Item>()
{
@Override
public void onResponse(Call<Item> call, Response<Item> response)
{
for(int i=0;i<response.body().getitems().size();i++)
{
item.add(new Initialise(response.body().getitems().get(i).getTitle(),response.body().getitems().get(i).getDate(),response.body().getitems().get(i).getcount(),response.body().getitems().get(i).getImage()));
}
adapter.notifyDataSetChanged();
}
@Override
public void onFailure(Call<Item> call, Throwable t)
{
}
});
}
}
そして、次は私のRecyclerViewアダプタクラスです:私は次のエラーを
public class Adapter extends RecyclerView.Adapter<Adapter.Holder>
{
static class Holder extends RecyclerView.ViewHolder
{
CardView cv;
ImageView thum_img;
TextView thum_time;
TextView thum_count;
TextView thum_text;
Holder(View itemView)
{
super(itemView);
cv = (CardView)itemView.findViewById(R.id.cv);
thum_img = (ImageView)itemView.findViewById(R.id.thum_img);
thum_time = (TextView)itemView.findViewById(R.id.thum_time);
thum_count = (TextView)itemView.findViewById(R.id.thum_scount);
thum_text = (TextView)itemView.findViewById(R.id.thum_text);
}
}
private List<Initialise> item;
private Context mContext;
public Adapter(List<Initialise> item, Context mContext)
{
this.item=item;
this.mContext=mContext;
}
@Override
public Holder onCreateViewHolder(ViewGroup parent, int viewType)
{
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.tab_layout, parent, false);
return new Holder(v);
}
@Override
public void onBindViewHolder(Holder holder, int position)
{
holder.thum_text.setText(item.get(position).gettitle());
holder.thum_time.setText(item.get(position).gettime());
holder.thum_count.setText(item.get(position).getcount());
Picasso.with(mContext).load(item.get(position).getstoryImage()).resize(120, 60).into(holder.thum_img);
}
@Override
public int getItemCount()
{
return item.size();
}
}
を取得しています:
E/RecyclerView: No adapter attached; skipping layout
マイカードビューが表示されず、ビューページが空です。どこが間違っていますか?
を編集しようか –
E/RecyclerView:アダプターは接続されていません。レイアウトをスキップする –
サーバからレコードを取得し、フラグメントの 'onCreate()'メソッド内でArrayListを初期化し、 'onViewCreated()'メソッドの中には入れないでください。あなたのコードでアダプタが空のArrayListで初期化されました。これは問題です – Shashanth