为什么要在RecyclerView.ViewHolder中使用静态 [英] Why to use static with RecyclerView.ViewHolder
本文介绍了为什么要在RecyclerView.ViewHolder中使用静态的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如果我在onCreateViewHolder
方法上创建此类的新实例,并且我猜该实例用于每个项目,为什么建议对RecyclerView.ViewHolder
扩展的class
使用static
呢?
Why is recommended to use static
for a class
extended from RecyclerView.ViewHolder
if I create a new instance of this class on the onCreateViewHolder
method and I guess that instance is used for each item:
@Override
public RecyclerViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_recyclerview,parent,false);
return new RecyclerViewAdapter.RecyclerViewHolder(view);
}
@Override
public void onBindViewHolder(RecyclerViewHolder holder, int position) {
String textTop = noticias.get(position).getHora()+ noticias.get(position).getTemperatura();
holder.textViewTop.setText(textTop);
holder.textViewBot.setText(noticias.get(position).getTexto());
}
public static class RecyclerViewHolder extends RecyclerView.ViewHolder{
public TextView textViewTop;
public TextView textViewBot;
public RecyclerViewHolder(View view){
super(view);
textViewTop = (TextView) view.findViewById(R.id.textView4);
textViewBot = (TextView) view.findViewById(R.id.textView5);
}
}
推荐答案
内部类包含对外部类的引用.因此,这意味着RecyclerView.ViewHolder
的每个实例都将包含对RecyclerView.Adapter
的引用.
Inner class contains reference to the outer class. So it means that every instance of your RecyclerView.ViewHolder
will contain reference to your RecyclerView.Adapter
.
通过将其设置为static
,可以避免保留此引用.
By making it static
you avoid keeping this reference.
这篇关于为什么要在RecyclerView.ViewHolder中使用静态的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文