我创建了一个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列表的正确位置?¿现在发生的事情是列表具有正确数量的项目但总是同一个项目,第一个.我想这很简单,但我无法弄清楚如何实现它.
谢谢!!
解决方法:
我不确定你为什么需要列表的位置.您可以在onBindVIEwHolder中获得该职位.但是,您可以将任何数据放在VIEwHolder中并稍后使用它们.
public class RecyclerVIEwAdapter extends RecyclerVIEw.Adapter<ResultVIEwHolder> { List<Result> _contents; public RecyclerVIEwAdapter(List<Result> contents) { this._contents = contents; } public Result getItem(int position) { return _contents != null ? _contents.get(position) : null; } @OverrIDe public int getItemCount() { return _contents.size(); } @OverrIDe public long getItemID(int position) { return position; } @OverrIDe public ResultVIEwHolder onCreateVIEwHolder(VIEwGroup parent, int vIEwType) { VIEw vIEw = LayoutInflater.from(parent.getContext()) .inflate(R.layout.List_item_card_small, parent, false); return new MyVIEwHolder(vIEw); } @OverrIDe public voID onBindVIEwHolder(ResultVIEwHolder holder, int position;) { Result result = getItem(position); holder.position = position; holder.result = result; holder.cityname.setText(result.getInfo().getCity().getname()); } public static class ResultVIEwHolder extends RecyclerVIEw.VIEwHolder implements VIEw.OnClickListener { int position = -1; Result result; TextVIEw cityname; public ResultVIEwHolder(VIEw vIEw) { super(vIEw); cityname = (TextVIEw) vIEw.findVIEwByID(R.ID.text_city_name); vIEw.setonClickListener(this); } public voID onClick(VIEw v) { // do whatever you want with List posisiton and result... } }}
总结 以上是内存溢出为你收集整理的android – RecyclerView.Adapter获取我的列表的项目位置全部内容,希望文章能够帮你解决android – RecyclerView.Adapter获取我的列表的项目位置所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)