java E/RecyclerView:未连接适配器;跳过布局,不复制没有任何效果(不显示框架)
E/RecyclerView:未连接适配器;跳过布局
我在网站上看到过类似的问题,但它们是不同的问题,因为在我的情况下,什么都不起作用。我试过那个解决方案,但没有成功
我已经清楚地附上了适配器,为什么会显示这个错误,在我的情况下,什么都没有发生,没有显示任何片段
public class MessageFragment extends Fragment {
private RecyclerView recyclerViewMessages;
private RecyclerView.Adapter adapter;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState)
{ return inflater.inflate(R.layout.fragment_messages, container, false);
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
getActivity().setTitle("Messages");
recyclerViewMessages = (RecyclerView) view.findViewById(R.id.recyclerViewMessages);
recyclerViewMessages.setHasFixedSize(true);
recyclerViewMessages.setLayoutManager(new LinearLayoutManager(getActivity()));
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(APIUrl.BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
APIService service = retrofit.create(APIService.class);
Call<Messages> call = service.getMessages(SharedPrefManager.getInstance(getActivity()).getUser().getId());
call.enqueue(new Callback<Messages>() {
@Override
public void onResponse(Call<Messages> call, Response<Messages> response) {
adapter = new MessageAdapter(response.body().getMessages(), getActivity());
recyclerViewMessages.setAdapter(adapter);
Log.d("Tag","onResponse" );
}
@Override
public void onFailure(Call<Messages> call, Throwable t) {
Toast.makeText(getActivity(), t.getMessage(), Toast.LENGTH_LONG).show();
}
});
}
}
错误是(正如你所看到的,我在响应上得到了错误,所以API应该没有问题:
E/RecyclerView: No adapter attached; skipping layout
D/Tag: onResponse
以防万一,如果您需要查看适配器类:
public class MessageAdapter extends
RecyclerView.Adapter<MessageAdapter.ViewHolder> {
private List<Message> messages;
private Context mCtx;
public MessageAdapter(List<Message> messages, Context mCtx) {
this.messages = messages;
this.mCtx = mCtx;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.list_messages, parent, false);
return new ViewHolder(v);
}
@Override
public void onBindViewHolder(MessageAdapter.ViewHolder holder, int position) {
final Message message = messages.get(position);
holder.textViewName.setText(message.getFrom());
holder.textViewTitle.setText(message.getTitle());
holder.textViewMessage.setText(message.getMessage());
holder.textViewTime.setText(message.getSent());
}
@Override
public int getItemCount() {
return messages.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
public TextView textViewName;
public TextView textViewTitle;
public TextView textViewMessage;
public TextView textViewTime;
public ViewHolder(View itemView) {
super(itemView);
textViewName = (TextView) itemView.findViewById(R.id.textViewName);
textViewTitle = (TextView) itemView.findViewById(R.id.textViewTitle);
textViewMessage = (TextView) itemView.findViewById(R.id.textViewMessage);
textViewTime = (TextView) itemView.findViewById(R.id.textViewTime);
}
}
}
问题是否可能是由其他原因(程序的另一部分)引起的
共 (0) 个答案