簡體   English   中英

Android-RecyclerView:未連接適配器; 跳過布局

[英]Android - RecyclerView: No adapter attached; skipping layout

我正在獲取RecyclerView: No adapter attached; skipping layout RecyclerView: No adapter attached; skipping layout錯誤,我的ViewPager沒有顯示RecyclerView列表。 我在片段的onCreate方法中創建了一個新的適配器對象,這應該是正確的方法。 我在這里做錯了什么?

片段文件:

public class HomeCurrentFragment extends Fragment {
    private RecyclerView recView;
    private EventAdapter eventAdapter;

    public HomeCurrentFragment() {
        // Required empty public constructor
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        eventAdapter = new EventAdapter(DummyData.getListData());
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_home_current, container, false);

        // Get the recview for id
        recView = (RecyclerView) view.findViewById(R.id.rec_list);

        // Set the layout to linear (as to grid)
        recView.setLayoutManager(new LinearLayoutManager(getActivity()));
        recView.setAdapter(eventAdapter);

        // Inflate the layout for this fragment
        return view;
    }
}

RecycleAdapter文件:

public class EventAdapter extends RecyclerView.Adapter<EventAdapter.EventHolder> {

    private ArrayList<EventItem> listData;

    public static class EventHolder extends RecyclerView.ViewHolder {

        private TextView title;
        private ImageView icon;
        private View container;

        public EventHolder(View itemView) {
            super(itemView);

            this.title = (TextView) itemView.findViewById(R.id.lbl_item_text);
            this.icon = (ImageView) itemView.findViewById(R.id.im_item_icon);
            this.container = itemView.findViewById(R.id.cont_item_root);

        }
    }

    public EventAdapter(ArrayList<EventItem> listData) {
        this.listData = listData;
    }

    @Override
    public EventHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.event_item, parent, false);
        return new EventHolder(view);
    }

    @Override
    public void onBindViewHolder(EventHolder holder, int position) {
        EventItem item = listData.get(position);
        holder.title.setText(item.getTitle());
        holder.icon.setImageResource(item.getImageResId());
    }

    @Override
    public int getItemCount() {
        return listData.size();
    }

}

更改:

public EventHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.event_item, parent, false);
        return new EventHolder(view);
    }

至:

public EventAdapter.EventHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.event_item, parent, false);
        return new EventHolder(view);
    }

我不確定為什么,希望有人可以在評論中解釋一下:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM