android签到功能开发,Android应用开发之Android简单实现app每月签到功能
本文将带你了解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每月签到功能相关推荐
- android签到功能开发,Android简单实现app每月签到功能
本文实例为大家分享了Android实现app每月签到功能的具体代码,供大家参考,具体内容如下 先上一张效果图: 其中这些签到的效果图是在网上找的,然后重要用到的控件就是 GridvVew 了, 代码很 ...
- android webview权限申请_Android应用开发之android 6.0下webview的定位权限设置方法
本文将带你了解Android应用开发android 6.0下webview的定位权限设置方法,希望本文对大家学Android有所帮助. 如下所示: WebView webView = (WebVi ...
- android 图片横竖判断_Android应用开发之android 判断ImageView当前显示的是哪一张图片...
本文将带你了解Android应用开发之android 判断ImageView当前显示的是哪一张图片,希望本文对大家学Android有所帮助. 判断ImageView当前显示的是哪一张图片 Java ...
- Android之基于xmpp openfire smack开发之Android客户端开发[3]
http://blog.csdn.net/shimiso/article/details/11225873 在上两篇文章中,我们依次介绍openfire部署以及smack常用API的使用,这一节中我们 ...
- Android之基于xmpp openfire smack开发之Android消息推送技术原理分析和实践[4]
http://blog.csdn.net/shimiso/article/details/8156439 前面几篇给大家系统讲解的有关xmpp openfire smack asmack相关的技术和使 ...
- android添加截图功能,Android应用开发之Android 5.0及以上编程实现屏幕截图功能的方法...
本文将带你了解Android应用开发Android 5.0及以上编程实现屏幕截图功能的方法,希望本文对大家学Android有所帮助. 本文实例讲述了Android 5.0及以上编程实现屏幕截图功能 ...
- Android自动手绘,Android应用开发之Android 实现手绘功能教程
本文将带你了解Android应用开发Android 实现手绘功能教程,希望本文对大家学Android有所帮助. 布局文件如下. Activity代码如下,其中线的颜色,宽度等属性都可以修改. pack ...
- android 开发art,Android应用开发之Android 系统启动原理(art 虚拟机)
本文将带你了解Android应用开发之Android 系统启动原理(art 虚拟机),希望本文对大家学Android有所帮助. Android 系统启动原理(art 虚拟机) 一.虚拟机的启动 A ...
- android vr播放器 开发,Android应用开发之Android VR Player(全景视频播放器)- ExoPlayer播放器MPEG-DASH视频播放...
本文将带你了解Android应用开发之Android VR Player(全景视频播放器)- ExoPlayer播放器MPEG-DASH视频播放,希望本文对大家学Android有所帮助. Androi ...
最新文章
- spark context stop use with as
- 无向图——双连通分量
- ribbon负载均衡@LoadBalanced
- MySQL高级 - 日志 - 查询日志
- 做一个幸福的“生活家”:谈《心欢喜,灵快乐》
- must override a superclass method
- AOS编排语言系列教程(四):创建弹性云服务器ECS
- Exchange Server 2010高可用性配置
- python里none什么意思_Python 中None的用法
- 《C++Primer》14、15章
- php一小时入门,php3小时快速入门-读书笔记
- 基于OpenGL编写一个简易的2D渲染框架-11 重构渲染器-Renderer
- 步进电机驱动技术1:基于TMC2660的步进电机驱动
- tar压缩文件时忽略指定文件夹、文件
- 计算机仿真和vr的区别,扫盲科普:今天才知道VR和AR的区别
- android studio 导入module作为lib使用
- 机器学习笔记(杂) oecd_bli_2015.csv TOT
- 获取本机ip和端口号
- openGauss例行重建索引
- 易语言 取无标题的窗口中编辑框句柄
热门文章
- python AES CFB-128加密
- 研究生日迹-201710月
- 日迹2022/06/23
- 从心出发 止于至善——建行广东江门分行助力侨乡遇“建”美好生活
- ESP8266学习之搭建Linux开发环境
- SpringBoot高版本(2.4及以上)集成neo4j并进行增删改查,通俗易懂附源代码
- 【微信_小游戏_canvas_基础_笔记1】
- JavaScript与C++等其他语言的不同之处——控制语句
- MATLAB 路径设置
- 我的世界60秒换位置服务器,怎么给我的世界服务器换周目