7

私のアプリケーションでは、ユーザーが日付を選択するために日付ピッカーを使用しています。また、アプリケーションでデータベースを使用しています。ユーザーが特定のアイテムを 1 つ選択すると、そのアイテムに関連するデータが取得され、別の画面に表示されます。 1つの開始日があります。日付ピッカーでその日付をデフォルトの日付としてロードする必要があります..しかし、現在の日付をデフォルトの日付としてロードしていますが、データベースから取得した日付はロードしていません..助けてください..よろしくお願いします.

私のコード:

 c = Calendar.getInstance();               
               SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd");
               System.out.println("After format");
               Date pickdefdate=null;
//             String pickdefdatepar=null;
               try {
                   System.out.println("Inside try="+date);
              pickdefdate=sdf.parse(date);              ----------->date which is fetched from database.
              System.out.println("dddddddd="+pickdefdate);

              c.setTime(pickdefdate);    --------------------->Setting this date as current date..
              System.out.println("After parse");
            } catch (ParseException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }           
               mYear = c.get(Calendar.YEAR);             ----------as u said i am setting this value before dialog.
               mMonth = c.get(Calendar.MONTH);
               mDay = c.get(Calendar.DAY_OF_MONTH);     
               showDialog(DATE_DIALOG_ID);



 protected Dialog onCreateDialog(int id) 
     {
            switch (id) {
            case DATE_DIALOG_ID:
                System.out.println("in dia="+mDay);
                return new DatePickerDialog(this, mDateSetListener, mYear, mMonth, mDay);
            }
            return null;
        }    

     private DatePickerDialog.OnDateSetListener mDateSetListener =
                new DatePickerDialog.OnDateSetListener() {
                    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                        System.out.println("Inside dia");
                        mYear = year;
                        mMonth = monthOfYear;
                        mDay = dayOfMonth;
                    }
            };
4

3 に答える 3

10

使用する

    date_picker_dialog.updateDate(year, month - 1, date);

既存の日付を日付ピッカーに更新したいときはいつでも。

日付ピッカーの作成中に任意の日付を設定する場合は、oncreatedialog をオーバーライドできます

    @Override
    protected Dialog onCreateDialog(int id)
    {
        switch (id) {
            case DATE_DIALOG_ID:
                date_picker_dialog = new DatePickerDialog(this, get_date, year, month - 1, date);
                return date_picker_dialog;
        }
    }

それがあなたを助けることを願っています。あなたが直面している問題があれば、尋ねることができます。

于 2012-08-13T05:41:21.173 に答える
0

DatePickerDialog には、このためのデフォルトのコンストラクターがあります。

public DatePickerDialog(Context context,
            OnDateSetListener callBack,
            int year,
            int monthOfYear,
            int dayOfMonth) {

    }
于 2016-07-26T11:12:10.843 に答える
0

mYear_1mMonth_1、はmDay_1日付ピッカーのフィールドです。

showDialog(DATE_DIALOG_ID_1);日付ピッカー ダイアログを呼び出す前に、これらの値を初期化します。

使い方==>

mYear_1     = 2011;
mMonth_1    = 07;
mDay_1      = 29;

showDialog(DATE_DIALOG_ID_1);

このように使用しないでください c = Calendar.getInstance();

データベースの値をこれらの値に初期化するだけです

于 2012-08-13T05:02:18.667 に答える