每日打卡APP

发布时间 2023-03-22 21:13:20作者: 旺旺大菠萝

1、首先打开之后是登录页面,此时选择注册

 

2、来到注册页面输入id(学号)、姓名、手机号、班级、密码

 

3、点击确认,注册成功,输入姓名和密码,点击登录

 

 

4、登陆之后来到打卡页面,自动显示用户姓名、今日日期、坚持天数、连续最长天数。

 

5、填入关键字和总结,点击打卡,打卡成功,显示打卡后的信息,可以返回

 

 

 

6、返回打卡页面,点击事件提醒,填入提醒内容

  

 

7、点击设置闹钟,进入设置时间页面

 

 

 

8、时间到了之后,弹出提示窗

 

 

9、回到开始界面,选择教师登录,来到老师登录页面

 

 

10、登录成功后,显示全部已经注册过的用户,用户姓名、最长打卡天数,班级,学号。

 

 

部分代码:

教师查询全部学生信息:

 MyAdapter

public class MyAdapter extends BaseAdapter {
    private List<Clock> listC;
    private List<User> listU;
    private LayoutInflater layoutInflater;

    public MyAdapter(Context context, List<Clock> listC ,List<User> listU)
    {
        this.listC = listC;
        this.listU = listU;
        layoutInflater  = LayoutInflater.from(context);
    }

    @Override
    public int getCount() {
        return listC.size();
    }

    @Override
    public Object getItem(int i) {
        return null;
    }

    public Object getItemC(int position) {
        return listC.get(position);
    }
    public Object getItemU(int position) {
        return listU.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        ViewHolder viewHolder;
        if(convertView == null)
        {
            convertView = layoutInflater.inflate(R.layout.itemlayout , null , false);
            viewHolder = new ViewHolder(convertView);
            convertView.setTag(viewHolder);
        }else {
            viewHolder = (ViewHolder) convertView.getTag();
        }
        //数据库
        Clock clock = (Clock) getItemC(position);
//        System.out.println(clock.getUsername());
        String most = String.valueOf(clock.getMost_day());
        viewHolder.t_username.setText(clock.getUsername());
        viewHolder.t_mostDay.setText(most);

        User user = (User) getItemU(position);

        String id = String.valueOf(user.getId());
        viewHolder.t_classroom.setText(user.getClassroom());
        viewHolder.t_id.setText(id);

        return convertView;
    }

     class ViewHolder{
        TextView t_username,t_mostDay,t_classroom,t_id;
        public ViewHolder(View view){
            t_username = view.findViewById(R.id.item_username);
            t_mostDay = view.findViewById(R.id.item_time);
            t_classroom = view.findViewById(R.id.item_classroom);
            t_id = view.findViewById(R.id.item_id);
        }
    }
}

 

 

 

 

闹钟:BookActivity

public class BookActivity extends Activity implements View.OnClickListener {
    //private Button btn;
    private AlarmManager alarmManager;  //闹钟管理器

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

        //获取闹钟管理器
        alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
        findViewById(R.id.btn_setClock).setOnClickListener(this);
        findViewById(R.id.btn_back).setOnClickListener(this);
    }
    @Override
    public void onClick(View view) {
        if(view.getId() == R.id.btn_back)
            finish();
        else
            setClock(view);
    }
    public void setClock(View view) {
        //获取当前系统时间
        Calendar calendar = Calendar.getInstance();
        int hour = calendar.get(Calendar.HOUR_OF_DAY);
        int minute = calendar.get(Calendar.MINUTE);

        //弹出闹钟框
        TimePickerDialog timePickerDialog = new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
            @Override
            public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                Calendar c = Calendar.getInstance();    //获取日期对象
                c.set(Calendar.HOUR_OF_DAY, hourOfDay); //设置闹钟小时数
                c.set(Calendar.MINUTE, minute); //设置闹钟分钟数
                Intent intent = new Intent(BookActivity.this, AlarmReceiver.class);
                //创建pendingIntent
                PendingIntent pendingIntent = PendingIntent.getBroadcast(BookActivity.this, 0X102, intent, 0);
                //设置闹钟
                alarmManager.set(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), pendingIntent);
                //Toast.makeText(BookActivity.this, "闹钟设置成功", Toast.LENGTH_SHORT).show();
                ToastUtil.show(BookActivity.this, "闹钟设置成功");
            }
        }, hour, minute, true);
        timePickerDialog.show();
    }


}

AlarmActivity:闹钟到时显示

//闹钟的提醒框
public class AlarmActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //显示闹钟提醒框
        new AlertDialog.Builder(AlarmActivity.this)
                .setTitle("闹钟")
                .setMessage("时间到了")
                .setPositiveButton("确定", new DialogInterface.OnClickListener(){
                    public void onClick(DialogInterface dialogInterface, int which) {
                        AlarmActivity.this.finish();
                    }
                }).create().show();
    }
}

 

AlarmReceiver

//广播接收类
public class AlarmReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Intent i = new Intent(context, AlarmActivity.class);
        i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(i);
    }
}

 

gitbub路径:

applpine/Clock (github.com)

下载地址:

https://github.com/applpine/Clock.git

项目目录: