Android学习-每日打卡APP-实现每日打卡
继续写我的打卡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();
}
作者:冰稀饭Aurora
出处:https://www.cnblogs.com/rsy-bxf150/p/17178691.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端