4

建议为什么使用staticclassRecyclerView.ViewHolder扩展,如果我创建这个类的onCreateViewHolder方法的新实例,我想这实例用于每个项目:为什么使用静态与RecyclerView.ViewHolder

@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); 
    } 

} 

回答

13

内部类包含对外部类的引用。所以这意味着您的RecyclerView.ViewHolder的每个实例都将包含对您的RecyclerView.Adapter的引用。

通过使其成为static您避免保留此参考。

Oracle Java Documentation - Nested Classes

相关问题