本文将带你了解Android应用开发Android简单实现app每月签到功能,希望本文对大家学Android有所帮助。

本文实例为大家分享了Android实现app每月签到功能的具体代码,供大家参考,具体内容如下

先上一张效果图:

其中这些签到的效果图是在网上找的,然后重要用到的控件就是   GridvVew 了, 代码很简单,只有3个代码文件:

MainActivity.class   文件

package zhanghuan.cn.checkdesign;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.widget.GridView;

import android.widget.TextView;

import java.util.ArrayList;

import java.util.Calendar;

import java.util.List;

import java.util.Locale;

public class MainActivity extends AppCompatActivity {

private   List   checkBeanList;

private MyAdapter   mAdapter;

private GridView   mGridview;

private TextView monthTxt;

@Override

protected void   onCreate(Bundle savedInstanceState)   {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initDate();

}

private void initDate() {

Calendar calendar =   Calendar.getInstance(Locale.CHINA);

int month = calendar.get(Calendar.MONTH) + 1;

int day = calendar.getActualMaximum(Calendar.DATE);   //   获取当前月的天数

checkBeanList = new ArrayList();

for (int i   = 0; i   < day + 1; i++)   {

CheckBean checkBean = new CheckBean();

if ((int)   (Math.random() * 20 %   4) == 3)   {

checkBean.day =   i;

checkBean.check_status =   CheckBean.CHECKED;

} else if ((int) (Math.random() * 20 % 4) == 2)   {

checkBean.day =   i;

checkBean.check_status =   CheckBean.CHECK_NO;

} else {

checkBean.day =   i;

checkBean.check_status =   CheckBean.CHECK_WAIT;

}

checkBeanList.add(checkBean);

}

monthTxt =   (TextView)findViewById(R.id.item_month);

if (month < 1 ||   month > 12)   {

month = 1;

}

monthTxt.setText("当前签到月份是:" + month);

mAdapter = new MyAdapter(MainActivity.this);

mAdapter.setListDate(checkBeanList);

mGridview = (GridView)   findViewById(R.id.main_gridview);

mGridview.setAdapter(mAdapter);

}

}

适配器文件:MyAdapter.class

package zhanghuan.cn.checkdesign;

import android.content.Context;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.ImageView;

import android.widget.TextView;

import android.widget.Toast;

import java.util.List;

/**

* Created by zhanghuan on   2016/3/8.

*/

public class MyAdapter extends BaseAdapter {

private Context mContext;

private List   checkBeanList;

public MyAdapter(Context context) {

mContext = context;

}

public void setListDate(List checklist)   {

checkBeanList = checklist;

}

@Override

public int getCount() {

return checkBeanList.size();

}

@Override

public Object   getItem(int position) {

return checkBeanList.get(position);

}

@Override

public long getItemId(int position) {

return position;

}

@Override

public View getView(final   int position, View convertView, ViewGroup parent)   {

final MyHoder hoder;

if (convertView == null)   {

convertView =   LayoutInflater.from(mContext).inflate(R.layout.check_item, null);

hoder = new MyHoder();

hoder.day = (TextView)   convertView.findViewById(R.id.item_day);

hoder.status = (ImageView)   convertView.findViewById(R.id.item_image);

convertView.setTag(hoder);

} else {

hoder = (MyHoder) convertView.getTag();

}

hoder.day.setText("day" + checkBeanList.get(position).day);

if (checkBeanList.get(position).check_status ==   CheckBean.CHECK_NO) {

hoder.status.setImageResource(R.mipmap.check_no);

hoder.status.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Toast.makeText(mContext, "恭喜你,签到成功!",   Toast.LENGTH_SHORT).show();

hoder.status.setImageResource(R.mipmap.checked);

hoder.status.setClickable(false);

checkBeanList.get(position).check_status =   CheckBean.CHECKED;

/* 在此做一些签到请求的处理   */

}

});

} else if (checkBeanList.get(position).check_status ==   CheckBean.CHECK_WAIT) {

hoder.status.setImageResource(R.mipmap.check_wait);

} else if (checkBeanList.get(position).check_status ==   CheckBean.CHECKED) {

hoder.status.setImageResource(R.mipmap.checked);

}

return convertView;

}

private static class MyHoder {

TextView day;

ImageView status;

}

}

CheckBean.class   文件:

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!

android签到功能开发,Android应用开发之Android简单实现app每月签到功能相关推荐

  1. android签到功能开发,Android简单实现app每月签到功能

    本文实例为大家分享了Android实现app每月签到功能的具体代码,供大家参考,具体内容如下 先上一张效果图: 其中这些签到的效果图是在网上找的,然后重要用到的控件就是 GridvVew 了, 代码很 ...

  2. android webview权限申请_Android应用开发之android 6.0下webview的定位权限设置方法

    本文将带你了解Android应用开发android 6.0下webview的定位权限设置方法,希望本文对大家学Android有所帮助. 如下所示: WebView webView =   (WebVi ...

  3. android 图片横竖判断_Android应用开发之android 判断ImageView当前显示的是哪一张图片...

    本文将带你了解Android应用开发之android   判断ImageView当前显示的是哪一张图片,希望本文对大家学Android有所帮助. 判断ImageView当前显示的是哪一张图片 Java ...

  4. Android之基于xmpp openfire smack开发之Android客户端开发[3]

    http://blog.csdn.net/shimiso/article/details/11225873 在上两篇文章中,我们依次介绍openfire部署以及smack常用API的使用,这一节中我们 ...

  5. Android之基于xmpp openfire smack开发之Android消息推送技术原理分析和实践[4]

    http://blog.csdn.net/shimiso/article/details/8156439 前面几篇给大家系统讲解的有关xmpp openfire smack asmack相关的技术和使 ...

  6. android添加截图功能,Android应用开发之Android 5.0及以上编程实现屏幕截图功能的方法...

    本文将带你了解Android应用开发Android 5.0及以上编程实现屏幕截图功能的方法,希望本文对大家学Android有所帮助. 本文实例讲述了Android   5.0及以上编程实现屏幕截图功能 ...

  7. Android自动手绘,Android应用开发之Android 实现手绘功能教程

    本文将带你了解Android应用开发Android 实现手绘功能教程,希望本文对大家学Android有所帮助. 布局文件如下. Activity代码如下,其中线的颜色,宽度等属性都可以修改. pack ...

  8. android 开发art,Android应用开发之Android 系统启动原理(art 虚拟机)

    本文将带你了解Android应用开发之Android 系统启动原理(art 虚拟机),希望本文对大家学Android有所帮助. Android   系统启动原理(art 虚拟机) 一.虚拟机的启动 A ...

  9. android vr播放器 开发,Android应用开发之Android VR Player(全景视频播放器)- ExoPlayer播放器MPEG-DASH视频播放...

    本文将带你了解Android应用开发之Android VR Player(全景视频播放器)- ExoPlayer播放器MPEG-DASH视频播放,希望本文对大家学Android有所帮助. Androi ...

最新文章

  1. spark context stop use with as
  2. 无向图——双连通分量
  3. ribbon负载均衡@LoadBalanced
  4. MySQL高级 - 日志 - 查询日志
  5. 做一个幸福的“生活家”:谈《心欢喜,灵快乐》
  6. must override a superclass method
  7. AOS编排语言系列教程(四):创建弹性云服务器ECS
  8. Exchange Server 2010高可用性配置
  9. python里none什么意思_Python 中None的用法
  10. 《C++Primer》14、15章
  11. php一小时入门,php3小时快速入门-读书笔记
  12. 基于OpenGL编写一个简易的2D渲染框架-11 重构渲染器-Renderer
  13. 步进电机驱动技术1:基于TMC2660的步进电机驱动
  14. tar压缩文件时忽略指定文件夹、文件
  15. 计算机仿真和vr的区别,扫盲科普:今天才知道VR和AR的区别
  16. android studio 导入module作为lib使用
  17. 机器学习笔记(杂) oecd_bli_2015.csv TOT
  18. 获取本机ip和端口号
  19. openGauss例行重建索引
  20. 易语言 取无标题的窗口中编辑框句柄

热门文章

  1. python AES CFB-128加密
  2. 研究生日迹-201710月
  3. 日迹2022/06/23
  4. 从心出发 止于至善——建行广东江门分行助力侨乡遇“建”美好生活
  5. ESP8266学习之搭建Linux开发环境
  6. SpringBoot高版本(2.4及以上)集成neo4j并进行增删改查,通俗易懂附源代码
  7. 【微信_小游戏_canvas_基础_笔记1】
  8. JavaScript与C++等其他语言的不同之处——控制语句
  9. MATLAB 路径设置
  10. 我的世界60秒换位置服务器,怎么给我的世界服务器换周目