如何将所选日期存储到android中的sqlite数据库?

时间:2015-03-26 06:59:12

标签: android sqlite datepicker textview

我在android中创建了一个布局,包括日期选择器和文本框中的显示日期。我想将该日期存储到数据库,我已创建数据库,但从文本框中获取该日期时发生错误。我如何存储所选日期?

public class Welcome_Coordinator extends Activity implements OnClickListener{

boolean flag=false;
SQLiteDatabase db=null;
Button btnCalendar, btnTimePicker;
EditText txtDate, txtTime;
private int mYear, mMonth, mDay;

@SuppressLint("SimpleDateFormat") 

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


      btnCalendar = (Button) findViewById(R.id.btnCalendar);
        txtDate = (EditText)findViewById(R.id.txtDate);
        btnCalendar.setOnClickListener(this);


        db=openOrCreateDatabase("schooldata", MODE_PRIVATE, null);
        db.execSQL("create table if not exists employee(txtDate varchar,flag varchar)");


}

@Override
public void onClick(View v) {

    if (v == btnCalendar) {

        // Process to get Current Date
        final Calendar c = Calendar.getInstance();
        mYear = c.get(Calendar.YEAR);
        mMonth = c.get(Calendar.MONTH);
        mDay = c.get(Calendar.DAY_OF_MONTH);

        // Launch Date Picker Dialog
        DatePickerDialog dpd = new DatePickerDialog(this,
                new DatePickerDialog.OnDateSetListener() {

                    @Override
                    public void onDateSet(DatePicker view, int year,
                            int monthOfYear, int dayOfMonth) {
                        // Display Selected date in textbox
                        txtDate.setText(dayOfMonth + "-"
                                + (monthOfYear + 1) + "-" + year);

                    }
                }, mYear, mMonth, mDay);
        dpd.show();
    }

}


public void action(View v)
{
switch(v.getId())
{
    case R.id.button1:

        //I am getting an error here 

    String txtDate=txtDate.getText().toString();
        {
        db.execSQL("insert into employee values('"+txtDate+"', 'nothing')");
        overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
        db.close();
        finish();
    }

    break;
}
Toast.makeText(getApplicationContext(), "Submitted Successfully", Toast.LENGTH_LONG).show();


}

请帮帮我。 谢谢。

1 个答案:

答案 0 :(得分:0)

为什么不在db中将日期存储为字符串,然后将此字符串解析为日期

DateFormat df = new SimpleDateFormat("date format", Locale.ENGLISH);
Date result =  df.parse(date_string);