Android 日历打卡应用代码示例:完整实现

以下是一个完整的日历打卡应用的代码:

MainActivity.java

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CalendarView;
import android.widget.Toast;
import java.text.SimpleDateFormat;
import java.util.Date;

public class MainActivity extends AppCompatActivity {

    private CalendarView calendarView;
    private Button checkInButton;
    private String lastCheckedDate;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        calendarView = findViewById(R.id.calendarView);
        checkInButton = findViewById(R.id.checkInButton);

        // 设置日历选择监听器
        calendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
            @Override
            public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {
                // 在这里处理选择日期的逻辑
                String selectedDate = formatDate(year, month, dayOfMonth);
                if (selectedDate.equals(lastCheckedDate)) {
                    Toast.makeText(MainActivity.this, '已打卡', Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(MainActivity.this, '未打卡', Toast.LENGTH_SHORT).show();
                }
            }
        });

        // 设置打卡按钮点击监听器
        checkInButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 在这里处理打卡逻辑
                lastCheckedDate = getCurrentDate();
                Toast.makeText(MainActivity.this, '打卡成功!', Toast.LENGTH_SHORT).show();
            }
        });
    }

    private String getCurrentDate() {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        return sdf.format(new Date());
    }

    private String formatDate(int year, int month, int dayOfMonth) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date date = new Date(year - 1900, month, dayOfMonth);
        return sdf.format(date);
    }
}

activity_main.xml

<?xml version='1.0' encoding='utf-8'?>
<LinearLayout xmlns:android='http://schemas.android.com/apk/res/android'
    xmlns:tools='http://schemas.android.com/tools'
    android:layout_width='match_parent'
    android:layout_height='match_parent'
    android:orientation='vertical'
    android:padding='16dp'
    tools:context='.MainActivity'>

    <CalendarView
        android:id='@+id/calendarView'
        android:layout_width='match_parent'
        android:layout_height='wrap_content' />

    <Button
        android:id='@+id/checkInButton'
        android:layout_width='wrap_content'
        android:layout_height='wrap_content'
        android:text='打卡' />

</LinearLayout>

该应用允许用户选择日期,并通过点击打卡按钮来记录打卡。当用户选择一个日期时,应用会检查该日期是否已经打卡,并显示相应的提示信息。当用户点击打卡按钮时,应用会更新打卡日期,并显示打卡成功的提示。

Android 日历打卡应用代码示例:完整实现

原文地址: https://www.cveoy.top/t/topic/QN6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录