2016-03-20 14 views
-1

私はRecyclerViewにいくつかのデータのリストビューを持っています.3つの異なるビューをリストに入れる必要があります。行「ユーザー名」または「連絡先」が好きです。ビューをRecyclerビューに挿入する

+5

このリンクを参照してください... http://stackoverflow.com/質問/ 26245139 /作成方法 - recyclerview-with-multiple-view-type – JpCrow

答えて

1

ビューホルダーを作成します。

public abstract class ViewHolder extends RecyclerView.ViewHolder { 
    public ViewHolder(View itemView) { 
    super(itemView); 
    } 

    public abstract void setDataOnView(int position); 
} 

今すぐあなたのビューの所有者を作成し、それらをViewHolderを拡張します。このように:

public class ContentViewHolder extends ViewHolder{ 
public final View view; 
public final TextView tv_div; 

public ContentViewHolder(View itemView) { 
    super(itemView); 
    view = itemView; 
    tv_div = (TextView) view.findViewById(R.id.tv_div); 
} 

@Override 
public void setDataOnView(int position) { 
    try { 
     String title= sections.get(position); 
     if(title!= null) 
      this.tv_div.setText(title); 
    }catch (Exception e){ 
     new CustomError("Error!"+e.getMessage(), null, false, null, e); 
    } 
    } 
} 

が最終的にRecyclerView.Adapterクラスは次のようになります。

public class MyRecyclerViewAdapter extends 
RecyclerView.Adapter<MyRecyclerViewAdapter.ViewHolder> { 

@Override 
public int getItemViewType(int position) { 
    // depends on your problem 
     switch (position) { 
     case : return VIEW_TYPE1; 
     case : return VIEW_TYPE2; 
     ... 
    } 
    } 

@Override 
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType){ 
    View view; 

    if(viewType == VIEW_TYPE1){ 
    view = LayoutInflater.from(parent.getContext()).inflate  
     (R.layout.layout1, parent, false); 
    return new ContentViewHolder(view); 

    } else if(viewType == VIEW_TYPE2){ 
    view = LayoutInflater.from(parent.getContext()).inflate 
    (R.layout.layout2, parent, false); 
    return new OtherViewHolder(view); 
    } 

    // Cont. other view holders ... 
    return null; 
    } 

    @Override 
    public void onBindViewHolder(ViewHolder holder, int position) { 
    holder.setDataOnView(position); 
    } 

希望はあなたを助けることができる:)

関連する問題