package com.huke.mycanlendar.canlendar;
import android.content.Context;
import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.huke.mycanlendar.views.CommonAdapter;
import com.huke.mycanlendar.R;
import java.util.ArrayList;
import java.util.List;
public class DayAdapter extends CommonAdapter<CalendarBean> {
private boolean isRightMonth = false;
private int mCurDay = 1; //当前月的默认日期
private int selectPos = -1; //选中的日期
private List<String> recordList = new ArrayList<>(); //有打卡记录的日期 yyyy-mm-dd
private OnItemSelectListener onItemSelectListener;
public void setOnItemSelectListener(OnItemSelectListener onItemSelectListener) {
this.onItemSelectListener = onItemSelectListener;
}
public DayAdapter(Context context) {
super(context);
}
public void notifyItemChoose(int position) {
if (mList.get(position).getMothFlag() == 0) {
selectPos = position;
notifyDataSetChanged();
//刷新列表数据
String tempDay = mList.get(position).getDay() < 10 ? "0" + mList.get(position).getDay() : mList.get(position).getDay() + "";
onItemSelectListener.onSelectItem(tempDay);
}
}
public void setRecordList(List<String> recordList, boolean isRightMonth, int mCurDay) {
this.recordList = recordList;
this.isRightMonth = isRightMonth;
this.mCurDay = mCurDay;
notifyDataSetChanged();
}
@Override
public View getItemView(final int position, View convertView, ViewGroup parent) {
if (null == convertView) {
convertView = LayoutInflater.from(mContext).inflate(R.layout.item_datepicker_day, null);
}
LinearLayout gridItem = convertView.findViewById(R.id.gridItem);
TextView dayView = convertView.findViewById(R.id.day);
View pointView = convertView.findViewById(R.id.point);
gridItem.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
notifyItemChoose(position);
}
});
CalendarBean item = mList.get(position);
dayView.setText("" + item.getDay());
if (item.getMothFlag() != 0) { //0 代表当前月份 上月和下月的字体置灰
// 空白区域
dayView.setVisibility(View.VISIBLE);
pointView.setVisibility(View.INVISIBLE);
dayView.setTextColor(mContext.getResources().getColor(R.color.color_cecece));
dayView.setBackgroundColor(mContext.getResources().getColor(R.color.white));
} else {
dayView.setVisibility(View.VISIBLE);
pointView.setVisibility(View.VISIBLE);
//是否是当月 dayview的视图显示
if (isRightMonth) {
if (mCurDay == item.getDay()) {
dayView.setBackgroundResource(R.drawable.circle_full_blue);
dayView.setTextColor(mContext.getResources().getColor(R.color.white));
if (selectPos != -1 && position != selectPos) {
dayView.setBackgroundResource(R.drawable.circle_round_blue);
dayView.setTextColor(mContext.getResources().getColor(R.color.color_999));
}
} else {
if (selectPos != -1 && position == selectPos) {
dayView.setTextColor(mContext.getResources().getColor(R.color.color_999));
dayView.setBackgroundResource(R.drawable.circle_round_gray);
} else {
dayView.setTextColor(mContext.getResources().getColor(R.color.color_999));
dayView.setBackgroundColor(Color.WHITE);
}
}
} else {
if (selectPos == -1) {
if (item.getDay() == 1) {
dayView.setTextColor(mContext.getResources().getColor(R.color.color_999));
dayView.setBackgroundResource(R.drawable.circle_round_gray);
} else {
dayView.setTextColor(mContext.getResources().getColor(R.color.color_999));
dayView.setBackgroundColor(Color.WHITE);
}
} else {
if (selectPos == position) {
dayView.setTextColor(mContext.getResources().getColor(R.color.color_999));
dayView.setBackgroundResource(R.drawable.circle_round_gray);
} else {
dayView.setTextColor(mContext.getResources().getColor(R.color.color_999));
dayView.setBackgroundColor(Color.WHITE);
}
}
}
//是否是打卡日
if (isExerciseDay(item.getYear(), item.getMoth(), item.getDay())) {
if (isRightMonth && mCurDay == item.getDay()) {
pointView.setVisibility(View.INVISIBLE);
} else {
pointView.setVisibility(View.VISIBLE);
}
} else {
pointView.setVisibility(View.INVISIBLE);
}
}
return convertView;
}
private boolean isExerciseDay(int year, int month, int day) {
boolean isExerciseDay = false;
String tempMonth = month < 10 ? "0" + month : month + "";
String tempDay = day < 10 ? "0" + day : day + "";
if (null != recordList && recordList.size() > 0) {
for (int i = 0; i < recordList.size(); i++) {
String data[] = recordList.get(i).split("-");
if (data[0].equals(year + "") && data[1].equals(tempMonth + "") && data[2].equals(tempDay + "")) {
isExerciseDay = true;
break;
}
}
}
return isExerciseDay;
}
public interface OnItemSelectListener {
void onSelectItem(String day);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
MyCanlendar.rar (46个子文件)
MyCanlendar
gradlew.bat 2KB
gradlew 5KB
gradle.properties 743B
app
src
main
res
mipmap-xxxhdpi
ic_launcher.png 9KB
ic_launcher_round.png 15KB
drawable
circle_full_blue.xml 327B
item_picker_bottom.xml 361B
circle_round_gray.xml 307B
circle_round_blue.xml 264B
ic_launcher_background.xml 6KB
mipmap-hdpi
ic_launcher.png 3KB
ic_launcher_round.png 5KB
drawable-v24
ic_launcher_foreground.xml 2KB
values
colors.xml 1KB
strings.xml 77B
styles.xml 394B
mipmap-xxhdpi
ic_launcher.png 6KB
ic_launcher_round.png 10KB
mipmap-mdpi
ic_launcher.png 2KB
ic_launcher_round.png 3KB
mipmap-xhdpi
ic_launcher.png 4KB
icon_train_right.png 1KB
icon_train_left.png 1KB
ic_launcher_round.png 7KB
mipmap-anydpi-v26
ic_launcher_round.xml 276B
ic_launcher.xml 276B
layout
item_datepicker_day.xml 1008B
activity_main.xml 1KB
view_datepicker.xml 5KB
java
com
huke
mycanlendar
bean
TrainCalendarRes.java 620B
canlendar
DayAdapter.java 6KB
CalendarBean.java 1KB
CalendarUtil.java 1KB
CalendarFactory.java 2KB
DatePickerView.java 5KB
CalendarViewPager.java 4KB
views
ObservableScrollView.java 2KB
ListViewInScroView.java 786B
CommonAdapter.java 2KB
MainActivity.java 4KB
AndroidManifest.xml 734B
build.gradle 726B
gradle
wrapper
gradle-wrapper.jar 53KB
gradle-wrapper.properties 238B
settings.gradle 16B
build.gradle 585B
共 46 条
- 1
资源评论
chickenmay
- 粉丝: 1
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功