SelectBarberHourAdapter.java
1 package com.example.lileme.ThreeFragment.AppointmentButton;
2
3
4 import android.content.Context;
5 import android.graphics.Color;
6 import android.support.v7.widget.RecyclerView;
7 import android.view.LayoutInflater;
8 import android.view.View;
9 import android.view.ViewGroup;
10 import android.widget.TextView;
11
12 import com.example.lileme.R;
13
14 import java.util.ArrayList;
15
16 /**
17 * Created by Administrator on 2016/7/16.
18 */
19 class SelectBarberHourAdapter extends RecyclerView.Adapter<SelectBarberHourAdapter.MyViewHolder> {
20 private Context context;
21 private ArrayList<RecyclerData> list;
22
23 private int defItem = -1;
24 private OnItemListener onItemListener;
25
26 public SelectBarberHourAdapter(Context context, ArrayList<RecyclerData> list) {
27 this.context=context;
28 this.list=list;
29 }
30 public void setOnItemListener(OnItemListener onItemListener) {
31 this.onItemListener = onItemListener;
32 }
33 public interface OnItemListener {
34 void onClick(MyViewHolder holder, int position);
35 }
36 public void setDefSelect(int position) {
37 this.defItem = position;
38 // notifyDataSetChanged();
39 }
40
41
42 @Override
43 public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
44 MyViewHolder holder = new MyViewHolder(LayoutInflater.from(
45 context).inflate(R.layout.layout_select_barber_hour_item, parent,
46 false));
47 return holder;
48 }
49
50 @Override
51 public void onBindViewHolder(final MyViewHolder holder, final int position) {
52 holder.tv.setText(list.get(position).content);
53 RecyclerData re=list.get(position);
54 if(position == 0){
55 holder.tv.setSelected(true);
56 holder.tv.setTextColor(Color.parseColor("#ffffff"));
57 holder.tv.setBackgroundResource(R.drawable.btn_day_hour_select);
58 }
59 if (defItem != -1) {
60 if (defItem == position) {
61 // 点击的位置
62 if(re.isSelect==true){
63 // 选中状态
64 holder.tv.setTextColor(Color.parseColor("#ffffff"));
65 holder.tv.setBackgroundResource(R.drawable.btn_day_hour_select);
66 }else {
67 holder.tv.setTextColor(Color.parseColor("#000000"));
68 holder.tv.setBackgroundResource(R.drawable.btn_day_hour_unselect);
69 }
70
71 } else {
72 // 没有点击的位置都变成默认背景
73 holder.tv.setTextColor(Color.parseColor("#000000"));
74 holder.tv.setBackgroundResource(R.drawable.btn_day_hour_unselect);
75 list.get(position).isSelect=false;
76 }
77 }
78 holder.tv.setOnClickListener(new View.OnClickListener() {
79 @Override
80 public void onClick(View v) {
81 if (onItemListener != null) {
82 onItemListener.onClick(holder, position);
83 }
84 }
85 });
86
87
88 }
89
90 @Override
91 public int getItemCount() {
92 return list.size();
93 }
94
95 /**
96 * ViewHolder的类,用于缓存控件
97 */
98 class MyViewHolder extends RecyclerView.ViewHolder {
99 TextView tv;
100
101 public MyViewHolder(View view) {
102 super(view);
103 tv = (TextView) view.findViewById(R.id.tv_hour);
104 }
105
106
107 }
108 }
layout_select_barber_hour_item.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:layout_width="110dp"
4 android:layout_height="wrap_content"
5 android:orientation="vertical">
6
7 <TextView
8 android:id="@+id/tv_hour"
9 android:layout_width="match_parent"
10 android:layout_height="80dp"
11 android:gravity="center"
12 android:text="1"
13 android:background="@drawable/btn_day_hour_unselect"
14 />
15 </LinearLayout>