RecyclerView没有显示任何内容。

4

我有一些项目在适配器中,但是RecyclerView中没有显示任何内容。

适配器

public class WorkOrderAdapter extends RecyclerView.Adapter<WorkOrderViewHolder> {

    private List<WorkOrder> orders = new LinkedList<>();

    public void setData(List<WorkOrder> orders) {
        this.orders = orders;
    }

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

    @Override
    public void onBindViewHolder(WorkOrderViewHolder holder, int position) {
        WorkOrder order = orders.get(position);
        holder.bind(order);
    }

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

}

ViewHolder

public class WorkOrderViewHolder extends RecyclerView.ViewHolder {

    private TextView title;
    private TextView description;
    private TextView date;

    public WorkOrderViewHolder(View view) {
        super(view);
        title = (TextView) view.findViewById(R.id.title_textview);
        description = (TextView) view.findViewById(R.id.description_textview);
        date = (TextView) view.findViewById(R.id.date_textview);
    }

    public void bind(WorkOrder order) {
        title.setText("Test");
        description.setText("Test");
        date.setText("Test");
    }
}

活动(使用AndroidAnnotations)

@EActivity(R.layout.activity_workorders)
@OptionsMenu(R.menu.activity_workorders)
public class WorkOrdersActivity extends ToolbarActivity {

    @ViewById(R.id.orders_recyclerview)
    RecyclerView ordersList;

    List<WorkOrder> orders = new LinkedList<>();
    private WorkOrderAdapter adapter;

    {
        adapter = new WorkOrderAdapter();
        orders.add(new WorkOrder());
        orders.add(new WorkOrder());
        orders.add(new WorkOrder());
        adapter.setData(orders);
    }

    @AfterViews
    public void initViews() {
        ordersList.setAdapter(adapter);
    }

}

你是否将适配器设置到了RecyclerView上?你设置的数据是什么? - Pasi Matalamäki
我已经添加了活动代码。 - Héctor
请分享logcat日志。 - Muhammad Waleed
没有错误。列表只是空的。 - Héctor
1个回答

20

请将LayoutManager添加到RecyclerView中,然后再试一次。

ordersList.setLayoutManager(new LinearLayoutManager(this));
ordersList.setAdapter(adapter);

愉快的编码..!! 如果有帮助,请接受答案。 - Jagadesh Seeram
1
以下是如何在XML中实现的: <android.support.v7.widget.RecyclerView ... android:orientation="vertical" app:layoutManager="android.support.v7.widget.LinearLayoutManager"/> - JohnnyLambada

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接