-1

我对日期选择器功能有疑问。

如何将 datepicker 的值保存到 sqlite 数据库?

假设我创建了一个按钮来设置日期和一个按钮来保存到数据库......

main.java

public class main extends Activity implements OnClickListener {

private Calendar dateTime=Calendar.getInstance();
      private SimpleDateFormat dateFormatter = new SimpleDateFormat("MMMM dd, yyyy");

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.addshoppinglist);

        mSaveBttn = (Button) findViewById(R.id.saveBttn);
        mSetDateBttn = (Button) findViewById(R.id.shoppingDate);
        mCancelBttn = (Button) findViewById(R.id.cancelBttn);
        mSaveBttn.setOnClickListener(this);

        mSetDateBttn.setOnClickListener(this);
        mCancelBttn.setOnClickListener(this);
        helper = new ProductDatabaseHelper(this);
        model = helper.getAll();
    }
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()) {
        case R.id.saveBttn:


            break;

        case R.id.cancelBttn:
            Intent mainIntent = (new Intent(AddShoppingList.this, main.class));
            startActivity(mainIntent);

            break;

        case R.id.shoppingDate:
            showDialog(DIALOG_DATE);

        }
    }
protected Dialog onCreateDialog(int id){
        switch(id){
        case DIALOG_DATE:
            return new DatePickerDialog(this,new OnDateSetListener(){


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

                    mSetDateBttn.setText(dateFormatter
                            .format(dateTime.getTime()));

                }
            } ,dateTime.get(Calendar.YEAR),
              dateTime.get(Calendar.MONTH),
              dateTime.get(Calendar.DAY_OF_MONTH));



        }

}

有谁知道如何将日期格式保存到数据库?

4

3 回答 3

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

将这些另存为不同的列,如日列、月列和年列

或要从 DatePicker 生成 Date 对象,请使用此代码

new Date(datePicker.getYear() - 1900, datePicker.getMonth(), datePicker.getDayOfMonth());

有时间使用这些方法

获取当前时间()获取当前分钟()

于 2012-10-30T06:38:42.900 回答
2

您可以通过以下方式实现此目的。

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);

    }

现在使用您的数据库助手类在其中插入值。对于使用数据库,请阅读这篇文章

于 2012-10-30T06:39:24.203 回答
2

我只是想出了一种简单的方法,因为我找不到答案搜索。就像在实现的函数onDateSet中做的一样,自定义一个函数insertDate

@Override
public void onDateSet (DatePicker view, int year, int month, int dayOfMonth) {



    Calendar cal = new GregorianCalendar(year , month ,dayOfMonth);
    DateFormat Dateformat = DateFormat.getDateInstance(DateFormat.MEDIUM);
    String date = Dateformat.format(cal.getTime());

 TextView dateText = (TextView) findViewById(R.id.dateVAl);
    dateText.setText("JUST ADDED DATE "+ date);

    godUri = insertDate(year, month, dayOfMonth);
}

private Uri insertDate(  int year , int month , int dayOfMonth   )
{
    ContentValues values = new ContentValues();
    values.put(dateContract.DateEntry.COLUMN_YEAR , year  );
    values.put(dateContract.DateEntry.COLUMN_MONTH , month);
    values.put(dateContract.DateEntry.COLUMN_DAY , d`enter code here`ayOfMonth);

    //getContentResolver().insert(  dateContract.DateEntry.CONTENT_URI , values );

     dateDbHelper myDbHelper  = new dateDbHelper(getApplicationContext());
    SQLiteDatabase database = myDbHelper.getWritableDatabase();
    long rowId = database.insert(dateContract.DateEntry.TABLE_NAME, null, values);
    return ContentUris.withAppendedId(dateContract.DateEntry.CONTENT_URI , rowId);

}

该对象 godUri(No Pun Intended) 被声明为全局变量。我创建了 Uri 对象 godUri 来存储 DatePicker 刚刚保存的日期的 Uri。它可以派上用场,例如,通过意图将该 Uri 发送到另一个活动。

如果您想查看我如何创建整个 datePicker 活动的完整代码……请访问此链接。我上面提到的其他所有内容都是我修改的。

于 2017-02-28T20:00:58.230 回答