2

1時間検索しても見つからなかったことにとても驚いています!

元のピッカーの例から少し変更した日付ピッカー ダイアログがあります (これについて Raghunandanに感謝します)。

しかし、デフォルトの日付を現在の日付として設定したくはありません。むしろ、EditText から日付を選択し、その日付を datepickerdialog に設定する必要があります。誰でもこれを解決するのを手伝ってもらえますか? 私の現在のコードは以下の通りです。

EDITED DatePickerFragment クラス内から購入した EditText の日付の値にアクセスする方法を知る必要があります。

主なクラス:

public class EditEntry extends Activity  implements DatePickerFragment.TheListener{
    EditText edit_datepurchased;
public void showdate(View v) {
        edit_datepurchased = (EditText) findViewById(v.getId());
        DialogFragment newFragment = new DatePickerFragment();
        newFragment.show(getFragmentManager(), "datePicker");
    }
public void returnDate(String date) {
        edit_datepurchased.setText(date);
    }
}

DatePickerFragment クラス:

public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
    TheListener listener;

    public interface TheListener{
        public void returnDate(String date);
    }

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState){

        final Calendar c=Calendar.getInstance();
        int year=c.get(Calendar.YEAR);
        int month=c.get(Calendar.MONTH);
        int day=c.get(Calendar.DAY_OF_MONTH);
        listener = (TheListener) getActivity(); 
        return new DatePickerDialog(getActivity(), this, year, month, day);
    }

    public void onDateSet(DatePicker view, int year, int month, int day){
        Calendar c = Calendar.getInstance();
        c.set(year, month, day);

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String formattedDate = sdf.format(c.getTime());
        if (listener != null) 
        {
          listener.returnDate(formattedDate); 

        }
          //listener.returnDate(year+"-"+(month+1)+"-"+day);
    }
}

注意:以前の同じコードについて質問がありますが、古いスレッドに質問を追加する方法がわかりません。

4

3 に答える 3

2

お役に立てば幸いです:

public class DatePickerFragment extends DialogFragment
{
    private OnDateSetListener onDateSetListener;

    public DatePickerFragment() {}

    public void setOnDateSetListener(OnDateSetListener onDateSetListener) {
        this.onDateSetListener = onDateSetListener;
    }

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        // Use the current date as the default date in the picker
        final Calendar c = Calendar.getInstance();
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH);
        int day = c.get(Calendar.DAY_OF_MONTH);

        // Create a new instance of DatePickerDialog and return it
        return new DatePickerDialog(getActivity(), onDateSetListener, year, month, day);
    }

}
于 2013-11-11T14:39:52.247 に答える
1

「最終カレンダー c=Calendar.getInstance();」,このコードは「c」を現在の時刻に設定し、希望する時刻に変更します。

于 2013-11-11T15:52:17.123 に答える