【发布时间】:2015-10-26 04:45:08
【问题描述】:
我创建了一个RecyclerView.Adapter,我想填写一个列表。所以我现在的问题是我不知道如何实现我的列表的获取位置。
下面你可以看到我的代码:
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
List<Result> _contents;
public RecyclerViewAdapter(List<Result> contents) {
this._contents = contents;
}
@Override
public int getItemCount() {
return _contents.size();
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int position) {
View view = null;
view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.list_item_card_small, parent, false);
Result tempResult = _contents.get(position);
TextView temp = (TextView) view.findViewById(R.id.text_city_name);
temp.setText(tempResult.getInfo().getCity().getName());
return new RecyclerView.ViewHolder(view) {
};
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
}
}
所以函数 onCreateViewHolder 无法正确获取 id 始终是相同的 id.. 我怎样才能解决这个问题或实施以获得 mi 列表的正确位置?¿ 现在发生的事情是列表有正确数量的项目,但始终是相同的项目,第一个。我想这很简单,但我不知道如何实现它。
谢谢!!
【问题讨论】:
-
所以您将
viewType更改为position并希望它现在占据一席之地? -
好吧,位置总是一样的,但这是因为我不知道如何实现它。 _contents 是我的项目列表,所以.. 我怎样才能在那里获得位置以在我的视图中填充正确的项目?你知道我的意思吗? @karaokyo
-
方法签名为:
onCreateViewHolder(ViewGroup parent, int viewType)。onCreateViewHolder将没有职位。您应该在onBindViewHolder中填充视图。如果您有任何问题,请查看教程并报告:developer.android.com/training/material/lists-cards.html。
标签: android android-recyclerview android-adapter