0

最初に、私は Android にまったく慣れていないので、この質問が本当に単純な場合は申し訳ありませんが、SO または Google で答えを見つけることができませんでした。

私はトレーニング用の小さなアプリをやっていて、II にはこの datePicker オブジェクトがあります:

<DatePicker
    android:id="@+id/datePicker1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/editText2"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="64dp"
    android:calendarViewShown="false"
    android:spinnersShown="true"
    android:onClick="selectDate" />

だから、私が持っているselectDate関数へのonClick接続を設定しました:

public void selectDate(View view) {
    datePick = (DatePicker) findViewById(R.id.datePicker1);
    int yy = datePick.getYear();
    int mm = datePick.getMonth();
    int dd = datePick.getDayOfMonth();
    Calendar calendar = Calendar.getInstance();
    calendar.set(yy, mm, dd);
    int doy = calendar.get(Calendar.DAY_OF_YEAR);
    populateDayOfYear(doy);
}

しかし、アプリは期待されていることを実行せず、実際、デバッグ後、この関数に入ることさえありません。

したがって、明確にするために、datePicker の値を変更するたびに EditText フィールドの値を (doy内の で) 更新したいので、ボタンを押して DatePickerDialog に移動したくありません。そして、EditText フィールドを更新できるようになります。populateDayOfYear(doy)

標準のdatePickerで可能ですか、それとも自分で構築する必要がありますか?

4

1 に答える 1

2

OnCreateでこれを試してください

datePick = (DatePicker) findViewById(R.id.datePicker1);
datePick.init(2012,1,1,  new DatePicker.OnDateChangedListener(){

   public void onDateChanged(DatePicker view, int yy, int mm, int dd){
      Calendar calendar = Calendar.getInstance();
      calendar.set(yy, mm, dd);
      int doy = calendar.get(Calendar.DAY_OF_YEAR);
      populateDayOfYear(doy);
   }
  }
);
于 2013-01-29T21:05:56.770 に答える