1

我在 android 中比较新鲜,我从 datepicker 中选择了开始日期和结束日期,因为我需要将开始日期和结束日期之间的日期插入 sqllite,然后与当前日期进行比较并设置提醒。如果您有解决方案,请告诉我

4

1 回答 1

1

要从日期选择器获取日期,请使用此

DatePicker datePicker = (DatePicker) findViewById(R.id.datePicker1);
int day = datePicker.getDayOfMonth();
int month = datePicker.getMonth() + 1;
int year = datePicker.getYear();

将值设置到数据库

public  void onDateSet(DatePicker view,int year,int monthOfYear,int dayOfMonth){
            dateTime.set(year,monthOfYear,dayOfMonth);

   int year = year;   // Here you can get day,month and year.
   int month = monthOfYear;
   int day = dayOfMonth;

ContentValues values = new ContentValues()

values.put("Day",dayOfMonth);
values.put("Month",monthOfYear);
values.put("Year",year);

}

您可以从这里这里这里获取数据库教程

获取当前日期

String currentDateTimeString = DateFormat.getDateTimeInstance().format(new Date());

要设置提醒 ,您可以使用警报管理器设置提醒,可以在此处找到解决方案

编辑 2

private class myReminderTask extends AsyncTask<Void, Void, Void>{
    ArrayList<String> list = new ArrayList<String>();
    @Override
    protected Void doInBackground(Void... params) {
        while(true)
        for(String s : list){
            Date d = //Make date from the string obtained from SQL
            d.toString().equals(DateFormat.getDateTimeInstance().format(new Date()));

            //Create an alaram or notification
        }

        return null;
    }

    @Override
    protected void onPreExecute() {

        Cursor c = null;
        c = db.rawQuery("select startDate,endDate from tablename" , null);

        if (cursor.getCount() != 0)
            {
                if (cursor.moveToFirst())
                {
                    do
                    {
                        list.add(cursor.getString(cursor.getColumnIndex("FirstDate")));
                        list.add(cursor.getString(cursor.getColumnIndex("LastDate")));
                    } while (cursor.moveToNext());
                }
                db.closeDatabase();
            }
            cursor.close();

        super.onPreExecute();
    }

}

在AsyncTask上做所有的事情(这里也有例子),这样主 UI 线程就不会被阻塞,在预执行代码数据库获取和在后台执行时使用 while 循环,这样它就永远不会结束

这就是我可以让你休息的工作......仅此而已,休息你必须搜索并按照自己的方式解决不要指望我制作并提供整个项目

于 2012-11-08T05:04:13.563 回答