PersonalAdapter.java 2.79 KB
package com.cnlive.gundam.user.adapter;

import android.content.Context;
import android.databinding.DataBindingUtil;
import android.databinding.ViewDataBinding;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.ViewGroup;

import com.cnlive.gundam.BR;
import com.cnlive.gundam.R;
import com.cnlive.gundam.main.ui.adapter.DataBindingAdapter;
import com.cnlive.gundam.main.ui.adapter.holder.DataBindingViewHolder;
import com.cnlive.gundam.user.model.PersonalData;

/**
 * Created by gujun on 2017/6/28.
 */

public class PersonalAdapter extends DataBindingAdapter<PersonalData>{

    public PersonalAdapter(Context context, int layoutId, int itemBRId) {
        super(context, layoutId, itemBRId);
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        if(viewType == PersonalData.TYPE_HEADER){
            ViewDataBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.layout_personal_header_item, parent, false);
            DataBindingViewHolder viewHolder = new DataBindingViewHolder(binding.getRoot());
            viewHolder.setBinding(binding);
            return viewHolder;
        }else if(viewType == PersonalData.TYPE_LOGOUT){
            ViewDataBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.layout_personal_logout_item, parent, false);
            DataBindingViewHolder viewHolder = new DataBindingViewHolder(binding.getRoot());
            viewHolder.setBinding(binding);
            return viewHolder;
        }else{
            return super.onCreateViewHolder(parent, viewType);
        }
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
        if(getItem(position).getItemType() == PersonalData.TYPE_HEADER){
            DataBindingViewHolder videoListViewHolder = (DataBindingViewHolder) holder;
            videoListViewHolder.getBinding().setVariable(itemBRId, getItem(position));
            if (l != null)
                videoListViewHolder.getBinding().setVariable(BR.viewClickListner, l);
            videoListViewHolder.getBinding().executePendingBindings();
        }else if(getItem(position).getItemType() == PersonalData.TYPE_LOGOUT){
            DataBindingViewHolder videoListViewHolder = (DataBindingViewHolder) holder;
            videoListViewHolder.getBinding().setVariable(itemBRId, getItem(position));
            if (l != null)
                videoListViewHolder.getBinding().setVariable(BR.viewClickListner, l);
            videoListViewHolder.getBinding().executePendingBindings();
        }else{
            super.onBindViewHolder(holder, position);
        }
    }

    @Override
    public int getItemViewType(int position) {
        return getItem(position).getItemType();
    }
}