-1
私はRecyclerViewにいくつかのデータのリストビューを持っています.3つの異なるビューをリストに入れる必要があります。行「ユーザー名」または「連絡先」が好きです。ビューをRecyclerビューに挿入する
私はRecyclerViewにいくつかのデータのリストビューを持っています.3つの異なるビューをリストに入れる必要があります。行「ユーザー名」または「連絡先」が好きです。ビューをRecyclerビューに挿入する
ビューホルダーを作成します。
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);
}
希望はあなたを助けることができる:)
このリンクを参照してください... http://stackoverflow.com/質問/ 26245139 /作成方法 - recyclerview-with-multiple-view-type – JpCrow