简体   繁体   中英

How to insert datepicker and timepicker in sqlite database in android

How to store Date with day and Time with Minutes ,I want to insert selected Date and selected Time in Database.

public class FutureSms extends AppCompatActivity {
DbHelper db;
EditText name,mob,msg;
DatePicker dp;
TimePicker tp;
Button b1;
Button b2;


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

    db = new DbHelper(this);
    name = (EditText) findViewById(R.id.name);
    dp = (DatePicker) findViewById(R.id.date);
    tp = (TimePicker) findViewById(R.id.time);
    mob = (EditText) findViewById( R.id.mobnumber);
    msg = (EditText) findViewById(R.id.msg);
     b1 = (Button) findViewById(R.id.save);
     b2 = (Button) findViewById(R.id.view);
    AddData();
}
public  void  AddData()
{
    b1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {



            boolean isInserted = db.insertData(
                    name.getText().toString(),
                    dp.getDayOfMonth();
                    tp.getCurrentHour();
                    mob.getText().toString(),
                    msg.getText().toString());
            if(isInserted == true)
                Toast.makeText(FutureSms.this,"Data Inserted",Toast.LENGTH_LONG).show();
            else
                Toast.makeText(FutureSms.this,"Data not Inserted",Toast.LENGTH_LONG).show();
        }
    });
}}

This is xml for layout of view.

  <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Select a time to send Message"
    android:textColor="#3B5998"
    android:textSize="20dp"
    android:textStyle="bold"
    android:layout_gravity="center_horizontal" />

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_marginTop="30dp">

        <DatePicker
            android:id="@+id/pickerdate"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        <TimePicker
            android:id="@+id/pickertime"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
        <Button
            android:id="@+id/setalarm"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Set Alarm"/>
        <TextView
            android:id="@+id/info"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>

    </LinearLayout>
</ScrollView>

DbHealper(this code contain to store database for insertion , deletion ,updation and view )

public class DbHelper extends SQLiteOpenHelper {

public  static final String DATABASE_NAME = "Alert.db";
public  static final String TABLE_NAME = "MessageAlert";
public  static final String COL = "ID" ;
public  static final String COL_1 = "NAME";
public  static final String COL_2 = "DATE";
public  static final String COL_3 = "TIME";
public  static final String COL_4= "MOBILE";
public  static final String COL_5 = "MESSAGE";

public DbHelper(Context context) {
    super(context, DATABASE_NAME , null, 1);
}

@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {

    sqLiteDatabase.execSQL("create table" + TABLE_NAME + "( ID INTEGER PRIMERY KEY AUTOINCREMENT ,NAME TEXT,DATE TEXT,TIME TEXT,MOBILE TEXT,MESSAGE TEXT } " );

}

@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

    sqLiteDatabase.execSQL("IF DROP TABLE EXISTS" + TABLE_NAME);
    onCreate(sqLiteDatabase);

}

public boolean insertData(String name,String date,String time,String mobile,String message) {
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues contentValues = new ContentValues();
    contentValues.put(COL_1,name);
    contentValues.put(COL_2,date);
    contentValues.put(COL_3,time);
    contentValues.put(COL_4,mobile);
    contentValues.put(COL_5,message);
    long result = db.insert(TABLE_NAME,null ,contentValues);
    if(result == -1)
        return false;
    else
        return true;
}

public Integer deleteData (String id) {
    SQLiteDatabase db = this.getWritableDatabase();
    return db.delete(TABLE_NAME, "ID = ?",new String[] {id});
}



public Cursor getAllData() {
    SQLiteDatabase db = this.getWritableDatabase();
    Cursor res = db.rawQuery("select * from "+TABLE_NAME,null);
    return res;
}

public boolean updateData(String id,String name,String date,String time,String mobile,String message) {
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues contentValues = new ContentValues();
    contentValues.put(COL,id);
    contentValues.put(COL_1,name);
    contentValues.put(COL_2,date);
    contentValues.put(COL_3,time);
    contentValues.put(COL_4,mobile);
    contentValues.put(COL_5,message);
    db.update(TABLE_NAME, contentValues, "ID = ?",new String[] { id });
    return true;
}}

Date in Java is just amount of milliseconds since January 1, 1970 00:00:00.000 GMT. So you can convert it back and forth to long variable. Date.getTime() to get long value of date (It's UNIX TimeStamp in milliseconds). And use new Date(System.currentTimeMillis()) to create your Date object back. So in the end you simply need to store one long value in your database.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM