首页 > 其他分享 >Android学习-每日打卡APP-实现每日打卡

Android学习-每日打卡APP-实现每日打卡

时间:2023-03-04 17:44:45浏览次数:37  
标签:dk clock APP Clock import et 打卡 每日

继续写我的打卡APP-完成了每日打卡的功能,其实还是比较简单,因为和注册一样都是插入的过程

同时还能实现自动计数的功能,把坚持天数自动计算出来,打卡后插入数据库

效果,可以看到第一次打卡显示坚持天数为0,点击打卡,提示打卡成功,再查看数据库文件,可以看到多了这条数据

 

 代码

package com.example.clockappliction;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import com.example.clockappliction.DataBase.CRUD;
import com.example.clockappliction.Information.Clock;
import com.example.clockappliction.Information.Count;

public class ClockActivity extends AppCompatActivity implements View.OnClickListener{

    private EditText et_dk_date,et_dk_word,et_dk_summary,et_dk_maxday;
    private Button btn_dk_add;
    private TextView tv_dk_keep;

    @SuppressLint("MissingInflatedId")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_clock_in);



        tv_dk_keep = (TextView) findViewById(R.id.tv_dk_keep);
        Count count = new Count();
        int keep = count.getCou();
        count.toCou();
        tv_dk_keep.setText("坚持天数"+ keep);
        et_dk_date = (EditText) findViewById(R.id.et_dk_date);
        et_dk_word = (EditText) findViewById(R.id.et_dk_word);
        et_dk_summary = (EditText) findViewById(R.id.et_dk_summary);
        et_dk_maxday = (EditText) findViewById(R.id.et_dk_maxday);

        btn_dk_add = (Button) findViewById(R.id.btn_dk_add);
        btn_dk_add.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        if (view==findViewById(R.id.btn_dk_add)){
            CRUD crud = new CRUD(this);
            //获取输入框信息
            Clock clock =new Clock();
            clock.date = et_dk_date.getText().toString();
            clock.word = et_dk_word.getText().toString();
            clock.summary = et_dk_summary.getText().toString();
            clock.maxday = et_dk_maxday.getText().toString();

            Intent intent = getIntent();
            String cid = intent.getStringExtra("cid");

            Count count = new Count();

            clock.cid = cid;
            clock.keep = String.valueOf(count.getCou());
            crud.insertClock(clock);


            Toast.makeText(this, "打卡成功!", Toast.LENGTH_SHORT).show();
        }

    }

}

xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:background="#DDDDDD"
    tools:context=".ClockActivity">

    <TextView
        android:id="@+id/tv_title3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:layout_marginStart="98dp"
        android:layout_marginTop="98dp"
        android:text="每日打卡"
        android:textColor="#000"
        android:textSize="50sp"
        android:textStyle="bold" />

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"

        android:id="@+id/et_dk_date"
        android:hint="日期"

        android:layout_below="@+id/tv_title3"
        android:layout_marginTop="15dp"
        ></EditText>
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"

        android:id="@+id/et_dk_word"
        android:hint="每日关键字"

        android:layout_below="@+id/et_dk_date"
        android:layout_marginTop="10dp"
        ></EditText>
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"

        android:id="@+id/et_dk_summary"
        android:hint="每日总结"

        android:layout_below="@+id/et_dk_word"
        android:layout_marginTop="10dp"
        ></EditText>
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"

        android:id="@+id/et_dk_maxday"
        android:hint="连续最长天数"

        android:layout_below="@+id/et_dk_summary"
        android:layout_marginTop="10dp"
        ></EditText>


    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:id="@+id/btn_dk_add"
        android:text="打卡"

        android:textSize="30dp"
        android:layout_below="@+id/et_dk_maxday"
        android:layout_marginTop="20dp"
        android:layout_marginLeft="120dp"

        ></Button>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/tv_dk_keep"
        android:layout_below="@+id/btn_dk_add"
        android:textSize="30dp"
        ></TextView>

</RelativeLayout>

用于插入打卡信息的函数

public void insertClock(Clock clock){

        SQLiteDatabase db = dbHelper.getWritableDatabase();
        ContentValues values = new ContentValues();

        values.put(Clock.DATE,clock.date);
        values.put(Clock.WORD,clock.WORD);
        values.put(Clock.SUMMARY,clock.summary);
        values.put(Clock.KEEP,clock.keep);
        values.put(Clock.MAXDAY,clock.maxday);

        values.put(Clock.CID,clock.cid);

        db.insert(Clock.TABLE,null,values);
        db.close();
    }

 

标签:dk,clock,APP,Clock,import,et,打卡,每日
From: https://www.cnblogs.com/rsy-bxf150/p/17178691.html

相关文章

  • Android-每日打卡APP-实现登录功能
    每日打卡APP新的进展-实现登录功能-昨天已经把注册功能实现了,今天也很快把登录功能做了出来,然后接着着手做其他功能,打卡功能写在下一篇博客能够实现登录和注册,注册相关的......
  • /dev/mapper/control: open failed: Permission denied Failure to communicate with
    这个错误信息表明您在尝试访问/dev/mapper/control文件时遇到了权限问题。这通常意味着您需要以超级用户身份运行命令。您可以在命令前加上sudo来以超级用户身份运行命......
  • 《高德地图app AR导航》安装及设置 【全景导航 】【视频导航】【AR导航】
    高德地图:12.5及以上版本不再支持AR导航,若需要AR请下载以下版本:下载地址:地址一:https://www.123pan.com/s/J3vKVv-yHmtd.html地址二:https://pan.baidu.com/s/1zbRln77rEEW......
  • Android NDK中Android.mk和Application.mk的常用配置
    PS:本文主要记录Android.mk和Application.mk的常用配置。不会做太过详细的介绍。一、Android.mkLOCAL_PATH:=$(callmy-dir)include$(CLEAR_VARS)LOCAL_MODULE:=d......
  • 每日算法 230303
    每日算法230303题目1487.保证文件名唯一给你一个长度为n的字符串数组names。你将会在文件系统中创建n个文件夹:在第i分钟,新建名为names[i]的文件夹。由于两......
  • 从0到1的OA系统App开发
    最近接触了关于人力资源的一个开发创意,加上多年玩手机,心血来潮想自己设计一款关于OA的手机APP,开发计划尚在完善中,计划主要使用Axure设计原型,uni-app开发前端和java来开发后......
  • 只用13行Python代码,实现给抖音APP自动点赞,非常简单!
    哈喽兄弟们,今天我们来试试,如何只用13行代码,给抖音APP视频自动点赞!前因后果事情是这样的,昨晚表弟晚上一两点了,房间灯还亮着,原来是还在用手机刷某音视频,我抢过手机一......
  • 每日打卡
    MySQL表的增删改查(基础)1.新增(Create)1.1单行数据+全列插入1.2多行数据+指定列2.查询(Retrieve)2.1全列查询2.2指定列查询2.3查询字段为表达式2.4别名2.5去重......
  • Android学习-每日打卡APP-进展
    今天课比较多,但是还是要抽出时间写安卓,又有了一些小进展,将数据库的部分代码写了出来可以参考一下packagecom.example.clockappliction;importandroid.content.Conte......
  • 2022.3.3每日总结
    HashSet基于HashMap来实现的,是一个不允许有重复元素的集合。HashSet允许有null值。HashSet是无序的,即不会记录插入的顺序。HashSet不是线程安全的,如果多个线程......