java – Android:我应该在recyclerview中维护对活动的引用还是有其他方法?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – Android:我应该在recyclerview中维护对活动的引用还是有其他方法?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1239字,纯文字阅读大概需要2分钟。
内容图文
![java – Android:我应该在recyclerview中维护对活动的引用还是有其他方法?](/upload/InfoBanner/zyjiaocheng/726/b9f7247e25064f2d997622931071f3f3.jpg)
我需要在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中维护对活动的引用还是有其他方法?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。