欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android自定义可标记日历效果

程序员文章站 2023-12-10 19:43:40
先直接看看效果吧 初始情况 点击一个作为标记 再次点击后删除 3.这里还要感谢前辈的代码作为参考,毕竟以前也没有写过关于日历方面的东西...

先直接看看效果吧

初始情况

Android自定义可标记日历效果

点击一个作为标记

Android自定义可标记日历效果

再次点击后删除

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。