import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.graphics.Color;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class GalleryAdapter extends RecyclerView.Adapter<GalleryAdapter.ViewHolder> implements View.OnClickListener{
private List<Boolean> isClicks;//控件是否被点击,默认为false,如果被点击,改变值,控件根据值改变自身颜色
private LayoutInflater mInflater;
private List<Children> mDatas;
private OnRecyclerViewItemClickListener mOnItemClickListener = null;
public static interface OnRecyclerViewItemClickListener {
void onItemClick(View view , Children data);
}
public GalleryAdapter(Context context, List<Children> datats)
{
mInflater = LayoutInflater.from(context);
mDatas = datats;
isClicks = new ArrayList<Boolean>();
for(int i = 0;i<mDatas.size();i++){
if(i==0){
isClicks.add(true);
}
isClicks.add(false);
}
}
public class ViewHolder extends RecyclerView.ViewHolder {
public ViewHolder(View arg0)
{
super(arg0);
}
TextView mTxt;
}
@Override
public int getItemCount()
{
return mDatas.size();
}
/**
* 创建ViewHolder
*/
@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i)
{
View view = mInflater.inflate(R.layout.activity_recycler_item,
viewGroup, false);
ViewHolder viewHolder = new ViewHolder(view);
view.setOnClickListener(this);
viewHolder.mTxt = (TextView) view
.findViewById(R.id.id_index_gallery_item_text);
return viewHolder;
}
/**
* 设置值
*/
@Override
public void onBindViewHolder(final ViewHolder viewHolder, final int i)
{
if(i<mDatas.size()){
viewHolder.mTxt.setText(mDatas.get(i).getSname());
//将数据保存在itemView的Tag中,以便点击时进行获取
viewHolder.itemView.setTag(mDatas.get(i));
if(isClicks.get(i)){
viewHolder.mTxt.setTextColor(Color.parseColor("#00a0e9"));
}else{
viewHolder.mTxt.setTextColor(Color.parseColor("#000000"));
}
// 如果设置了回调,则设置点击事件
if (mOnItemClickListener != null) {
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for(int i = 0; i <isClicks.size();i++){
isClicks.set(i,false);
}
isClicks.set(i,true);
notifyDataSetChanged();
mOnItemClickListener.onItemClick(viewHolder.itemView,mDatas.get(i));
}
});
}
}
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (mOnItemClickListener != null) {
//注意这里使用getTag方法获取数据
mOnItemClickListener.onItemClick(v,(Children) v.getTag());
}
}
public void setOnItemClickListener(OnRecyclerViewItemClickListener listener) {
this.mOnItemClickListener = listener;
}
}
import java.util.List;
import android.content.Context;
import android.graphics.Color;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class GalleryAdapter extends RecyclerView.Adapter<GalleryAdapter.ViewHolder> implements View.OnClickListener{
private List<Boolean> isClicks;//控件是否被点击,默认为false,如果被点击,改变值,控件根据值改变自身颜色
private LayoutInflater mInflater;
private List<Children> mDatas;
private OnRecyclerViewItemClickListener mOnItemClickListener = null;
public static interface OnRecyclerViewItemClickListener {
void onItemClick(View view , Children data);
}
public GalleryAdapter(Context context, List<Children> datats)
{
mInflater = LayoutInflater.from(context);
mDatas = datats;
isClicks = new ArrayList<Boolean>();
for(int i = 0;i<mDatas.size();i++){
if(i==0){
isClicks.add(true);
}
isClicks.add(false);
}
}
public class ViewHolder extends RecyclerView.ViewHolder {
public ViewHolder(View arg0)
{
super(arg0);
}
TextView mTxt;
}
@Override
public int getItemCount()
{
return mDatas.size();
}
/**
* 创建ViewHolder
*/
@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i)
{
View view = mInflater.inflate(R.layout.activity_recycler_item,
viewGroup, false);
ViewHolder viewHolder = new ViewHolder(view);
view.setOnClickListener(this);
viewHolder.mTxt = (TextView) view
.findViewById(R.id.id_index_gallery_item_text);
return viewHolder;
}
/**
* 设置值
*/
@Override
public void onBindViewHolder(final ViewHolder viewHolder, final int i)
{
if(i<mDatas.size()){
viewHolder.mTxt.setText(mDatas.get(i).getSname());
//将数据保存在itemView的Tag中,以便点击时进行获取
viewHolder.itemView.setTag(mDatas.get(i));
if(isClicks.get(i)){
viewHolder.mTxt.setTextColor(Color.parseColor("#00a0e9"));
}else{
viewHolder.mTxt.setTextColor(Color.parseColor("#000000"));
}
// 如果设置了回调,则设置点击事件
if (mOnItemClickListener != null) {
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for(int i = 0; i <isClicks.size();i++){
isClicks.set(i,false);
}
isClicks.set(i,true);
notifyDataSetChanged();
mOnItemClickListener.onItemClick(viewHolder.itemView,mDatas.get(i));
}
});
}
}
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (mOnItemClickListener != null) {
//注意这里使用getTag方法获取数据
mOnItemClickListener.onItemClick(v,(Children) v.getTag());
}
}
public void setOnItemClickListener(OnRecyclerViewItemClickListener listener) {
this.mOnItemClickListener = listener;
}
}