144 lines
4.0 KiB
Java
144 lines
4.0 KiB
Java
|
package com.example.nanchen.aiyaschoolpush.adapter;
|
|||
|
|
|||
|
import android.content.Context;
|
|||
|
import android.graphics.Bitmap;
|
|||
|
import android.support.v7.widget.RecyclerView;
|
|||
|
import android.util.SparseArray;
|
|||
|
import android.view.View;
|
|||
|
import android.view.View.OnClickListener;
|
|||
|
import android.widget.ImageView;
|
|||
|
import android.widget.TextView;
|
|||
|
|
|||
|
import com.example.nanchen.aiyaschoolpush.R;
|
|||
|
import com.lzy.ninegrid.NineGridView;
|
|||
|
import com.lzy.ninegrid.preview.NineGridViewClickAdapter;
|
|||
|
import com.squareup.picasso.Picasso;
|
|||
|
|
|||
|
/**
|
|||
|
* @author nanchen
|
|||
|
* @fileName ischool
|
|||
|
* @packageName com.idtechinfo.shouxiner.adapter.common
|
|||
|
* @date 2016/09/02 15:41
|
|||
|
*/
|
|||
|
public class CommonRecyclerHolder extends RecyclerView.ViewHolder {
|
|||
|
private SparseArray<View> views;
|
|||
|
private Context context;
|
|||
|
|
|||
|
private CommonRecyclerHolder(Context context, View itemView) {
|
|||
|
super(itemView);
|
|||
|
this.context = context;
|
|||
|
//指定一个初始为8
|
|||
|
views = new SparseArray<>(8);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* 取得一个RecyclerHolder对象
|
|||
|
* @param context 上下文
|
|||
|
* @param itemView 子项
|
|||
|
* @return 返回一个RecyclerHolder对象
|
|||
|
*/
|
|||
|
public static CommonRecyclerHolder getRecyclerHolder(Context context, View itemView){
|
|||
|
return new CommonRecyclerHolder(context,itemView);
|
|||
|
}
|
|||
|
|
|||
|
public SparseArray<View> getViews(){
|
|||
|
return this.views;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* 通过view的id获取对应的控件,如果没有则加入views中
|
|||
|
* @param viewId 控件的id
|
|||
|
* @return 返回一个控件
|
|||
|
*/
|
|||
|
@SuppressWarnings("unchecked")
|
|||
|
public <T extends View> T getView(int viewId){
|
|||
|
View view = views.get(viewId);
|
|||
|
if (view == null ){
|
|||
|
view = itemView.findViewById(viewId);
|
|||
|
views.put(viewId,view);
|
|||
|
}
|
|||
|
return (T) view;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* 设置字符串
|
|||
|
*/
|
|||
|
public CommonRecyclerHolder setText(int viewId, String text){
|
|||
|
TextView tv = getView(viewId);
|
|||
|
tv.setText(text);
|
|||
|
return this;
|
|||
|
}
|
|||
|
|
|||
|
public CommonRecyclerHolder setTextColor(int viewId,int color){
|
|||
|
TextView textView = getView(viewId);
|
|||
|
textView.setTextColor(color);
|
|||
|
return this;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* 设置图片
|
|||
|
*/
|
|||
|
public CommonRecyclerHolder setImageResource(int viewId, int drawableId){
|
|||
|
ImageView iv = getView(viewId);
|
|||
|
iv.setImageResource(drawableId);
|
|||
|
return this;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* 设置图片
|
|||
|
*/
|
|||
|
public CommonRecyclerHolder setImageBitmap(int viewId, Bitmap bitmap){
|
|||
|
ImageView iv = getView(viewId);
|
|||
|
iv.setImageBitmap(bitmap);
|
|||
|
return this;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* 设置图片
|
|||
|
*/
|
|||
|
public CommonRecyclerHolder setImageByUrl(int viewId, String url){
|
|||
|
Picasso.with(context).load(url)
|
|||
|
.placeholder(context.getResources().getDrawable(R.drawable.ic_default_image))
|
|||
|
.error(context.getResources().getDrawable(R.drawable.ic_default_image))
|
|||
|
.into((ImageView) getView(viewId));
|
|||
|
return this;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
public CommonRecyclerHolder setOnRecyclerItemClickListener(int viewId,OnClickListener listener){
|
|||
|
View view = getView(viewId);
|
|||
|
view.setOnClickListener(listener);
|
|||
|
return this;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* 设置九宫格图片
|
|||
|
* @param viewId id
|
|||
|
* @param clickAdapter Adapter
|
|||
|
*/
|
|||
|
public CommonRecyclerHolder setNineGridAdapter(int viewId,NineGridViewClickAdapter clickAdapter){
|
|||
|
NineGridView nineGridView = getView(viewId);
|
|||
|
nineGridView.setAdapter(clickAdapter);
|
|||
|
return this;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* 设置一个控件是否可见
|
|||
|
* @param viewId id
|
|||
|
* @param visibility 可见性
|
|||
|
* @return
|
|||
|
*/
|
|||
|
public CommonRecyclerHolder setVisibility(int viewId,int visibility){
|
|||
|
View view = getView(viewId);
|
|||
|
view.setVisibility(visibility);
|
|||
|
return this;
|
|||
|
}
|
|||
|
|
|||
|
public CommonRecyclerHolder setOnClckListener(int viewId,OnClickListener listener){
|
|||
|
View view = getView(viewId);
|
|||
|
view.setOnClickListener(listener);
|
|||
|
return this;
|
|||
|
}
|
|||
|
}
|