基類Adapter
package com.example.administrator.databindingproject;
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.View;
import android.view.ViewGroup;
import java.util.List;
/**
* 設置抽象的BaseAdapter
*
* @param <T> 繼承于ViewDataBinding
* @param <M> Model實體類
*/
public abstract class BaseAdapter<T extends ViewDataBinding, M> extends RecyclerView.Adapter {
private List<M> list;
private Context context;
public BaseAdapter(List<M> list, Context context) {
this.list = list;
this.context = context;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater inflate = LayoutInflater.from(context);
T binding = DataBindingUtil.inflate(inflate, getLayout(), parent, false);
return new MyViewHolder(binding.getRoot());
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
T binding = DataBindingUtil.getBinding(holder.itemView);
setItemData(binding, list.get(position));
}
@Override
public int getItemCount() {
return list.size();
}
//獲取item布局
public abstract int getLayout();
//設置viewHolder的數(shù)據(jù)
public abstract void setItemData(T binding, M m);
public class MyViewHolder extends RecyclerView.ViewHolder {
public MyViewHolder(View itemView) {
super(itemView);
}
}
}
在Adapter中繼承實現(xiàn)
package com.example.administrator.databindingproject;
import android.content.Context;
import android.util.Log;
import com.example.administrator.databindingproject.databinding.ItemSecondBinding;
import java.util.List;
/**
* Created by $wu on 2017-09-09 下午 2:03.
*/
public class TestAdapter extends BaseAdapter<ItemSecondBinding, User> {
public TestAdapter(List<User> list, Context context) {
super(list, context);
}
@Override
public int getLayout() {
return R.layout.item_second;
}
@Override
public void setItemData(ItemSecondBinding binding, User t) {
binding.setUser(t);
binding.executePendingBindings();
}
}
Activityh中的實現(xiàn)
private void initView() {
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
List<User> users = new ArrayList<>();
for (int i = 0; i < 30; i++) {
User user = new User();
user.name.set("wu");
user.age.set(i);
users.add(user);
}
TestAdapter adapter = new TestAdapter(users, this);
recyclerView.setAdapter(adapter);
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。