/**
* RecycleView的适配器
* */
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder>{
private static final String TAG = "RecyclerViewAdapter";
private Context context;
private ArrayList<String> datas;
/**
* 构造方法
* 传入上下文以及数据
* */
public RecyclerViewAdapter(Context context, ArrayList<String> datas){
this.context=context;
this.datas=datas;
}
/**
* 指定布局
* */
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView=View.inflate(context, R.layout.recycler_item,null);
return new ViewHolder(itemView);
}
/**
* 控件的注册
* */
class ViewHolder extends RecyclerView.ViewHolder{
private TextView item_text;
private ImageView item_icon;
public ViewHolder(View itemView){
super(itemView);
item_icon=itemView.findViewById(R.id.item_icon);
item_text=itemView.findViewById(R.id.item_text);
}
}
/**
* 绑定数据
* */
@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
//根据位置得到数据
holder.item_text.setText(datas.get(position));
//点击设置
if(onItemClickListener!=null){
//调用系统的点击方法
holder.item_text.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onItemClickListener.onItemClick(holder.item_text,holder.getLayoutPosition());
}
});
holder.item_text.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
onItemClickListener.onItemLongClick(holder.item_text,holder.getLayoutPosition());
return false;
}
});
}
}
/**
* 返回列表数目
* */
@Override
public int getItemCount() {
return datas.size();
}
/**
* 设置点击事件
* */
private OnItemClickListener onItemClickListener;
//接口返回两个数据
public interface OnItemClickListener{
void onItemClick(View view,int position);
void onItemLongClick(View view,int position);
}
//外界设置
public void setOnItemClickListener(OnItemClickListener onItemClickListener){
this.onItemClickListener=onItemClickListener;
}
/**
* 添加数据
* */
public void addData(int position,String data){
//添加到第几个位置
datas.add(position,data);
//刷新第几个的数据
notifyItemInserted(position);
}
/**
* 移除数据
* */
public void removeData(int position){
datas.remove(position);
notifyItemRemoved(position);
}
}
recyclerView=(RecyclerView)findViewById(R.id.recyclerView);
/**
* 设置布局管理器
* 参数:
* context,
* 水平或者竖直
* 是否倒序
* */
recyclerView.setLayoutManager(
new LinearLayoutManager(this,
LinearLayoutManager.VERTICAL,false));
/**
* 设置布局管理器
* 参数:
* context,
* 列数
* 水平或者竖直
* 是否倒序
* */
recyclerView.setLayoutManager(
new GridLayoutManager(this,2,
GridLayoutManager.VERTICAL,false));
//适配器调用点击方法
adapter.setOnItemClickListener(new RecyclerViewAdapter.OnItemClickListener() {
@Override
public void onItemClick(View view, int position) {
}
@Override
public void onItemLongClick(View view, int position) {
}
});
adapter=new RecyclerViewAdapter(this,datas);
recyclerView.setAdapter(adapter);
}