java–Android:我应该在recyclerview中维护对活动的引用还是有其他方法?

java–Android:我应该在recyclerview中维护对活动的引用还是有其他方法?,第1张

概述我需要在onBindViewHolder中使用上下文方法(标准示例可能像getString或getColor一样常见).到目前为止,我已经将上下文传递给了recyclerview的构造函数并在变量中维护了一个引用,但在我看来,这似乎是不好的做法.有没有办法从Recyclerview内部动态获取上下文而不将其存储为变量?publ

我需要在onBindVIEwHolder中使用上下文方法(标准示例可能像getString或getcolor一样常见).到目前为止,我已经将上下文传递给了recyclervIEw的构造函数并在变量中维护了一个引用,但在我看来,这似乎是不好的做法.有没有办法从RecyclervIEw内部动态获取上下文而不将其存储为变量?

public SomeRecyclerVIEwClass(Activity activity) {    this.parentActivity = activity;}

解决方法:

我看不出在构造函数中传递Context并将其存储在字段中的任何缺点.无论如何,您可以通过这种方式访问​​它:

public class MyAdapter extends RecyclerVIEw.Adapter<MyVIEwHolder> {    @OverrIDe    public MyVIEwHolder onCreateVIEwHolder(VIEwGroup parent, int vIEwType) {        Context context = parent.getContext();        //Do your things    }    @OverrIDe    public voID onBindVIEwHolder(MyVIEwHolder holder, int position) {        Context context = holder.itemVIEw.getContext();        //Do your things    }}

为了完整起见,我发布了我通常采用的解决方案,它也保留了对LayoutInflater的引用:

public class MyAdapter extends RecyclerVIEw.Adapter<MyVIEwHolder> {    public Context mContext;    public LayoutInflater mInflater;    public MyAdapter(Context context) {        mContext = context;        mInflater = LayoutInflater.from(context);    }    @OverrIDe    public MyVIEwHolder onCreateVIEwHolder(VIEwGroup parent, int vIEwType) {        VIEw v = mInflater.inflate(R.layout.row, parent, false);        //Do your things    }}
总结

以上是内存溢出为你收集整理的java – Android:我应该在recyclerview中维护对活动的引用还是有其他方法?全部内容,希望文章能够帮你解决java – Android:我应该在recyclerview中维护对活动的引用还是有其他方法?所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存