我需要在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中维护对活动的引用还是有其他方法?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)