home-school-contact-app/文档/Android/app/src/main/java/com/example/nanchen/aiyaschoolpush/adapter/ViewHolder.java

123 lines
3.2 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.example.nanchen.aiyaschoolpush.adapter;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.util.SparseArray;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.squareup.picasso.Picasso;
/**
* 万能适配器的ViewHolder
*
* @author nanchen
* @date 2016-07-29 15:04:10
*/
public class ViewHolder {
//现在对于int作为键的官方推荐用SparseArray替代HashMap
private final SparseArray<View> views;
private View convertView;
private Context context;
private ViewHolder(Context context,ViewGroup parent,int itemLayoutId,int position) {
this.context = context;
this.views = new SparseArray<>();
this.convertView = LayoutInflater.from(context).inflate(itemLayoutId,parent,false);
convertView.setTag(this);
}
/**
* 拿到一个ViewHolder对象
*/
public static ViewHolder get(Context context,View convertView, ViewGroup parent, int layoutId, int position) {
if (convertView == null) {
return new ViewHolder(context,parent, layoutId, position);
}
return (ViewHolder) convertView.getTag();
}
/**
* 通过控件的Id获取对于的控件如果没有则加入views
*/
public <T extends View> T getView(int viewId) {
View view = views.get(viewId);
if (view == null) {
view = convertView.findViewById(viewId);
views.put(viewId, view);
}
return (T) view;
}
public View getConvertView() {
return convertView;
}
/**
* 设置字符串
*/
public ViewHolder setText(int viewId,String text){
TextView tv = getView(viewId);
tv.setText(text);
return this;
}
public ViewHolder setText(int viewId,CharSequence text){
TextView tv = getView(viewId);
tv.setText(text);
return this;
}
/**
* 设置图片
*/
public ViewHolder setImageResource(int viewId,int drawableId){
ImageView iv = getView(viewId);
iv.setImageResource(drawableId);
return this;
}
/**
* 设置图片
*/
public ViewHolder setImageDrawable(int viewId, Drawable drawable){
ImageView iv = getView(viewId);
iv.setImageDrawable(drawable);
return this;
}
/**
* 设置图片
*/
public ViewHolder setImageBitmap(int viewId, Bitmap bitmap){
ImageView iv = getView(viewId);
iv.setImageBitmap(bitmap);
return this;
}
/**
* 设置图片
*/
public ViewHolder setImageByUrl(int viewId,String url){
Picasso.with(context).load(url).into((ImageView) getView(viewId));
// ImageLoader.getInstance().init(ImageLoaderConfiguration.createDefault(context));
// ImageLoader.getInstance().displayImage(url, (ImageView) getView(viewId));
return this;
}
/**
* 设置文本颜色
*/
public ViewHolder setTextColor(int viewId,int color){
TextView textView = getView(viewId);
textView.setTextColor(color);
return this;
}
}