android–RecyclerView.Adapter获取我的列表的项目位置

android–RecyclerView.Adapter获取我的列表的项目位置,第1张

概述我创建了一个RecyclerView.Adapter,我想填写一个列表..所以我现在的问题是我不知道如何实现我的列表的获取位置.下面你可以看到我的代码:publicclassRecyclerViewAdapterextendsRecyclerView.Adapter<RecyclerView.ViewHolder>{List<Result>_contents;publicR

我创建了一个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获取我的列表的项目位置所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1111665.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存