Android自定义可标记日历效果
作者:genius-x 发布时间:2022-09-06 04:11:22
标签:Android,日历
先直接看看效果吧
初始情况
点击一个作为标记
再次点击后删除
3.这里还要感谢前辈的代码作为参考,毕竟以前也没有写过关于日历方面的东西,别人确实写得不错,我在原基础上加入了数据库操作等补充,以完成自己实际需求,作为尊重首先给出原作者的连接
就是这里–>Android自定义控件实现可多选课程日历CalendarView
4.然后贴出来关于数据库操作的代码,给大家作为参考
DatabaseHelper .java 这是关于简单数据库操作的部分
package com.xugongming38.editcalendar.utils;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
/**
* Created by dell on 2017/5/18.
*/
public class DatabaseHelper extends SQLiteOpenHelper {
public static final String CREATE_DIARY = "create table Hair("
+ "id integer primary key autoincrement, "
+ "content text)";
private Context mContext;
public DatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version){
super(context, name, factory, version);
mContext = context;
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_DIARY);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("drop table if exists Hair");
onCreate(db);
}
}
DataHelper .java 简化数据操作接口,避免直接操作数据库,做了再一层的封装,建议读者也这样做,可以让代码更清晰,更容易复用
package com.xugongming38.editcalendar.utils;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import java.util.ArrayList;
import java.util.List;
/**
* Created by dell on 2017/5/18.
*/
public class DataHelper {
public static DatabaseHelper mHelper;
public static void deleteData2List(String content) {
SQLiteDatabase dbDelete = mHelper.getWritableDatabase();
dbDelete.delete("Hair", "content = ?", new String[]{content});
}
public static void addData2List(String content) {
SQLiteDatabase db = mHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("content", content);
db.insert("Hair", null, values);
values.clear();
}
public static List<String> getDataList(Context context) {
if(mHelper==null){
mHelper = new DatabaseHelper(context, "Hair.db", null, 1);
}
List<String> dataList = new ArrayList<>();
SQLiteDatabase sqLiteDatabase = mHelper.getWritableDatabase();
Cursor cursor = sqLiteDatabase.query("Hair", null, null, null, null, null, null);
if (cursor.moveToFirst()) {
do {
String content = cursor.getString(cursor.getColumnIndex("content"));
dataList.add(content);
} while (cursor.moveToNext());
}
cursor.close();
return dataList;
}
}
5.代码完整部分下面给出GitHub地址,欢迎star,水平有限,如有需要,欢迎留言讨论
这是我的github位置–https://github.com/xugongming38/EditCalendar


猜你喜欢
- 本文实例讲述了Android编程实现屏幕禁止休眠的方法。分享给大家供大家参考,具体如下:实现这一功能的方法有两种,一种是在Manifest.
- 正文将 Java 对象序列化为二进制文件的 Java 序列化技术是 Java 系列技术中一个较为重要的技术点,在大部分情况下,开发人员只需要
- Servlet3.0的出现是servlet史上最大的变革,其中的许多新特性大大的简化了web应用的开发,为广大劳苦的程序员减轻了压力,提高了
- 本文实例为大家分享了java实现学生成绩档案管理系统的具体代码,供大家参考,具体内容如下实验要求• 学生信息录入,信息包括学号、姓名、专业、
- 概述用Time和Calendar获取系统当前时间(年月日时分秒周几)效果图源码:import android.app.Activity; i
- 每一个app都会有一个”退出登陆”的功能,当点击退出之后需要将所有的Activity都finish掉,开始是想将栈中的所有Activity清
- 本文实例展示了DevExpress获取TreeList可视区域节点集合的实现方法,是比较有实用价值的技巧。分享给大家供大家参考。具体实现方法
- 前言Android提供了很多种保存应用程序数据的方法。其中一种就是用SharedPreferences对象来保存我们私有的键值(key-va
- java 多线程的几种实现方法总结1.多线程有几种实现方法?同步有几种实现方法?多线程有两种实现方法,分别是继承Thread类与实现Runn
- 本文实例讲述了Android编程之分辨率处理相关代码段。分享给大家供大家参考,具体如下:1. 通常我们所说的屏幕分辨率如800x480、96
- 官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/open-a
- 综述Android中的事件分发机制也就是View与ViewGroup的对事件的分发与处理。在ViewGroup的内部包含了许多View,而V
- 本文实例为大家分享了flutter实现底部不规则导航栏的具体代码,供大家参考,具体内容如下scafford的bottomNavigation
- 本文实例讲述了Java枚举类用法。分享给大家供大家参考。具体如下:package com.school.stereotype; /** *
- spring boot版本和spring cloud版本框架版本SpringBoot2.3.12.RELEASESpringCloudHox
- 在Java项目开发中,Maven是非常重要的构建工具之一,它可以帮助我们管理项目的依赖、构建和发布。本文将通过以下两个方面来介绍Maven打
- 概念装饰者模式动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。装饰者和被装饰对象有相同的超类型。你可以用一个或
- 目录1.前言2.不同进制的特点3.进制之间的转换3.1 二进制转十进制:3.2 十进制转二进制:3.3 二进制转八进制:3.4 十六进制转二
- Android中的线程池ThreadPoolExecutor解决了单线程下载数据的效率慢和线程阻塞的的问题,它的应用也是优化实现的方式。所以
- 前言本文,将介绍如何通过Java后端程序代码在PDF中创建工具提示。添加工具提示后,当鼠标悬停在页面上的元素时,将显示工具提示内容。导入ja