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

相關問題