0

私は editText の入力タイプを使用していますが、ユーザーが日付を日付形式で入力し、それを sqlite のテーブルの日時フィールドに格納するようにしたいと考えています。これは可能ですか?editText の日付形式は dd/mm/yyyy であり、sqlite では yyyy/mm/dd であるためです。

ユーザーが日付を入力する編集テキストがあるフォームを設計しました。この日付をフィールドのタイプがdatetimeであるsqliteに保存したいのですが、どうすればよいですか? 私はAndroidが初めてなので、誰かが解決策を知っているなら、答えを教えてください。

4

1 に答える 1

1

私は私の問題を解決しました:

  1. 日付のデータ型は sqlite3 の datetime です。
  2. textview、datepicker、およびレイアウトに保存されたdate_picker_demo.xmlのボタンを使用しました。

  3. DatePicker.java

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
            db = new DatabaseHelper(this);
            date_textview = (TextView) findViewById(R.id.tv_date);
            picker_date = (DatePicker) findViewById(R.id.datepicker1);
            button_create = (Button) findViewById(R.id.button_create);
    }
    
    @Override 
    public void onClick(View arg0) {
        date = new Date(picker_date.getYear()-1900, picker_date.getMonth(), picker_date.getDayOfMonth()); 
            sdf = new SimpleDateFormat("yyyy-MM-dd");
    
           //sdf.format()->converting date to string
    String sdate = sdf.format(date); 
    
          //inserting date into database
             try {
        db.createDataBase();
    } catch (IOException e) {
        e.printStackTrace();
    }
    db.openDataBase();
    Cursor cur = db.select();
    
    for(cur.moveToFirst(); !cur.isAfterLast(); cur.moveToNext()){
        if(cur.isLast()){
            s_id = Integer.parseInt(cur.getString(0));
            s_id = s_id + 1;
        }
    }
             db.insertDate(s_id,sdate);
       }
    
  4. DatabaseHelper.java

     public Cursor select(){
     String qry = "Select subscription_id from Subscription_Master";
     cur = sqdb.rawQuery(qry,null); 
    return cur;
     }
    
     public void insertDate(int s_id,String s_date){
    
    String query = "insert into Subscription_TAB(subscription_id,start_date) values("+s_id+",date('"+s_date+"'))";
     sqdb.execSQL(query);
     Log.d("value","inserted");
     }
    

日付がデータベースに正常に挿入されました。

于 2013-02-14T11:47:51.380 に答える