1. 用户在app端选择个日期就能查询这个月的考勤打卡信息,并以日历上标注不同的颜色来显示给用户,当然这个日历是recyclerview做出来的,只是每行显示7个,表示一周的七天.

2. 员工考勤打卡的数据获取与分析都是在服务器端完成的,通过app端传入的日期和用户名,来完成用户考勤的提取分析,并把结果返回给app,使用webservice.

3.在app端把数据和recyclerview进行绑定,对不同的结果使用不同的颜色,就这样了,结果还不错.

里面最关键的部分是1. 计算选择的日期下当月有多少天.   2.当月第一天是星期几,效果图如下,还需要慢慢完善,下图是2017年7月份

知道了这两个就能在.net端方便的组装出日历的数据和第一行的偏移来了,具体的时间分析及返回值,按自己的想法设计就行了,我是返回个简单的字符串.代码如下.

Dim month As String = CDate(Sdate).Month

Dim Year As String = CDate(Sdate).Year

Dim Days As Integer = Date.DaysInMonth(Year, month)

Dim Szd As String = hr.GetGS(yhm)

Dim Str As String = ""

Dim img As String

Dim K_RQ As String = Year & "-" & month & "-" & "1"

Dim K_week As Integer = CDate(K_RQ).DayOfWeek ‘本月第一天是星期几

Dim Dt As DataTable = New DataTable

Dt.Columns.Add("日期")

Dt.Columns.Add("分析")

For i = 1 To K_week

Dim dr As DataRow = Dt.NewRow

dr.Item(0) = ""

dr.Item(1) = "1-0"

Dt.Rows.Add(dr)

Next

For i = 1 To Days

RQ = Year & "-" & month & "-" & i

img = KQ_Fenxi(RQ, name, Szd)

Dim dr As DataRow = Dt.NewRow

dr.Item(0) = i

dr.Item(1) = img

Dt.Rows.Add(dr)

Next

Str = OA.DataTable2Json(Dt)

Return Str

在进行测试时返回值如下,把这个json传到app端进行数据绑定就行了

[{"日期":"1","分析":"1-0"},{"日期":"2","分析":"1-1"},{"日期":"3","分析":"1-1"},{"日期":"4","分析":"1-1"},{"日期":"5","分析":"1-2"},{"日期":"6","分析":"1-1"},{"日期":"7","分析":"1-1"},{"日期":"8","分析":"1-0"},{"日期":"9","分析":"1-1"},{"日期":"10","分析":"1-1"},{"日期":"11","分析":"1-1"},{"日期":"12","分析":"1-1"},{"日期":"13","分析":"1-1"},{"日期":"14","分析":"1-1"},{"日期":"15","分析":"1-0"},{"日期":"16","分析":"1-3"},{"日期":"17","分析":"1-1"},{"日期":"18","分析":"1-1"},{"日期":"19","分析":"1-1"},{"日期":"20","分析":"1-1"},{"日期":"21","分析":"1-3"},{"日期":"22","分析":"1-0"},{"日期":"23","分析":"1-0"},{"日期":"24","分析":"1-1"},{"日期":"25","分析":"1-1"},{"日期":"26","分析":"1-1"},{"日期":"27","分析":"1-1"},{"日期":"28","分析":"1-1"},{"日期":"29","分析":"1-0"},{"日期":"30","分析":"1-1"},{"日期":"31","分析":"1-1"}]

接下来是在andriod studio中的关键部分了,代码如下:

private void LoadData(String MethodName,String cs1,String cs2){

try{

WebService ws = new WebService(MethodName,cs1,cs2, "");

ws.execute();

Log.e("KQ-rq",cs1);

Log.e("KQ-uid",cs2);

ws.setOnAsyRes(new AsyRes() {

@Override

public void onDateRec(String msg) {

String jsonStr;

jsonStr=msg;

Log.e("KQ-str",msg);

try {

mDatas=new ArrayList();

FileList map;

JSONArray jsonArray = new JSONArray(jsonStr);

for (int i = 0; i < jsonArray.length(); i++) {

JSONObject jsonObject = jsonArray.getJSONObject(i);

map=new FileList(jsonObject.getString("日期"),jsonObject.getString("分析"));

mDatas.add(map);

}

myKqAdapter recycler=new myKqAdapter(getActivity(),mDatas);

RecyclerView recyclerView=(RecyclerView) vi.findViewById(R.id.lv_list);

//LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());

GridLayoutManager girdManger=new GridLayoutManager(getActivity(),7);

recyclerView.setLayoutManager(girdManger);

//如果可以确定每个item的高度是固定的,设置这个选项可以提高性能

recyclerView.setHasFixedSize(true);

//创建并设置Adapter

recyclerView.addItemDecoration(new myItemDec()); //增加分隔线

recyclerView.setAdapter(recycler);

recyclerView.setItemAnimator(new DefaultItemAnimator());

} catch (JSONException e) {

}

}

});

}catch (Exception e) {

}

}

增加上log.e,主要是查看一下发送的参数和返回的结果是否正确,红色的代码就是为了让recyclerview每行显示七个

在自定义的数据适配器中,我们分析返回的结果,根据结果设置不同的背景色.

public void onBindViewHolder(MyViewHolder holder, final int position) {

FileList da=mDatas.get(position);

//holder.v.setBackgroundColor(Color.WHITE);

String msg=da.getMsg();

if (listener != null) {

holder.v.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

listener.onItemClick(v,position);

}

});

}

// holder.tv.setGravity(Gravity.CENTER_HORIZONTAL);//设置文字水平居中

holder.tv.setText(da.getName());

// holder.msg.setText("");

if (msg.equals("1-1")){

holder.v.setBackgroundColor(Color.GREEN); //全天上班

}

if (msg.equals("1-2")){

holder.v.setBackgroundColor(Color.YELLOW);//半天上班

}

if (msg.equals("1-3")){

holder.v.setBackgroundColor(Color.YELLOW);//半天上班

}

if (msg.equals("1-0")){

holder.v.setBackgroundColor(Color.WHITE);//全天休息

}

}

好了,基本上一个日历型的考勤显示界面就出来了,后边你可以慢慢加上表头,增加上点击事件,用户点击时显示详细的打卡时间.

原文:http://www.cnblogs.com/wjbych/p/7271908.html

android 日历考勤管理,android studio中使用recyclerview制作个显示考勤打卡的日历来...相关推荐

  1. JAVAJSPjavaweb企业员工考勤管理系统企业考勤管理(ssm企业人事管理系统)企业人事考勤系

    企业员工考勤管理系统企业考勤管理(ssm企业人事管理系统)企业人事考勤系 大家好,很高兴和大家分享Java项目和经验.不管同学们是出于什么需求.都希望各位计算机专业的同学有一个提高. 本系统采用ecl ...

  2. Android Studio中引入RecyclerView的v7包

    本文转载自[http://blog.csdn.net/a10615/article/details/51268022] 一直知道RecyclerView可以代替ListView.GridView使用, ...

  3. Android Studio中的RecyclerView的使用方法实例分析

    RecyclerView的使用方法实例分析 话不多说直接上代码 主文件的布局文件,定义一个RecyclerView列表 <?xml version="1.0" encodin ...

  4. android 日历_适用于Android的十大最佳日历应用

    android 日历 Looking for the best calendar apps for Android? You're in the right place! Let's get righ ...

  5. android 日历开发教程,android 开发教程之日历项目实践(三)

    二.创建样式 日历显示的表格线,使用 Cell 填充图形的边框来实现,为了统一,我们先定义边框线的颜色及线条精细. 另外还要定义一系统填充样式等. 创建 color: color_calendar_b ...

  6. android 日历动态图标,android – 有没有办法动态更改日历应用程序的应用程序图标呢?...

    无论您的主屏幕是什么,都有特殊的挂钩,无论您的日历应用程序是什么,无论您的闹钟应用程序是什么.通常,应用无法更新其图标. What do you mean by hooks? 例如,三星可以在三星设备 ...

  7. android 内核内存管理,Android内核相关内容总结

    要想充分掌握Android这一操作系统的应用,首先需要我们从Android内核的相关内容开始了解.在这里就为大家详细介绍一下相关的知识. Android操作系统是由谷歌推出的一款基于Linux平台开源 ...

  8. android handlerthread 线程管理,Android多线程之HandlerThread源码解析

    一.概述 先来了解一下HandlerThread的几个特性 HandlerThread继续于Thread,本身就是一个线程类 HandlerThread在内部维护了自己的Looper对象,所以可以进行 ...

  9. android浮于上方布局,android-在FrameLayout中使RecyclerView上方的视图...

    在单击按钮时,我试图在RecyclerView上方填充EditText.但是,不是将EditText添加到布局的顶部,从而按下了RecyclerView,而是将其简单地放置在RecyclerView的 ...

最新文章

  1. php取url后的文件名
  2. 古董来了:1999年的物件,香港已经回归了,我都上初中了,那么你出生了吗?
  3. C#之out和ref区别
  4. VB中FSO的调用的两种方法
  5. android有道翻译api,有道智云自然翻译服务API
  6. 以太网帧的目的地址从哪里来?
  7. Visual Paradigm 顾客旅程地图 (Customer Journey Map)
  8. 计算机博士专业学位,计算机博士
  9. py3_VSCode 配置 Python 环境以及初识 Python 正则表达式
  10. 如何给PDF文件加密和解密?
  11. 「镁客·请讲」小小牛曹翔:Creative AR让孩子们成为21世纪的“神笔马良”
  12. RS485通信的学习以及思考
  13. html在ie浏览器中中文为什么是乱码
  14. Android Studio清单文件合并规则
  15. APICloud(二):选择一张或多张图片
  16. java 阿里云 发送短信功能实现
  17. echarts散点图中大小_ECharts如何实现散点图
  18. 进制转换 和 正数负数——原码,反码,补码
  19. 转变自己的信仰——致少年的自己
  20. 在u盘运行linux系统软件,主编帮你xp系统利用U盘直接运行Linux软件 的步骤【图】...

热门文章

  1. 达梦V8使用dmrman恢复数据库
  2. 2023级网络安全岗面试题及面试经验分享
  3. labview简易计算机实验报告,labview 实验报告.doc
  4. gram矩阵的性质_矩阵分析(九)Gram矩阵
  5. 机器学习作业-FOGS: 基于学习图的一阶梯度监督交通流预测
  6. 医院病历管理系统java版本二
  7. java-php-python-中美医院病历管理系统计算机毕业设计
  8. 北交中外合作计算机类出国留学,北交大中外合作办学怎么样
  9. Win10下系统自带的各种监测工具
  10. PS文字调整为复印字效果