DataPickerDialog,其他片段中的ondateset

时间:2013-12-20 15:54:43

标签: java android facebook dialog datepicker

我在这里遇到了问题,所以这是我的片段:

public class EventFragment extends Fragment  implements DatePickerDialog.OnDateSetListener{
@Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

//Click on the datetextview       
        txtDate.setOnClickListener(new View.OnClickListener() {
              public void onClick(View v) {
                  DialogFragment newFragment = new DatePickerFragment();
                  newFragment.show(getFragmentManager(), "datePicker");
                  }

          });

正如您所看到的那样,只要点击我的textview,就会弹出一个DatePickerDialog。

我得到onDateSet的那个片段:

public void onDateSet(DatePicker view, int year, int month, int day) {

    Log.i(TAG, "Result: " );

    //Start again
    ShowEventsFromFQL();
}

这是一个日志和一个开始的方法。

这是我的DatePickerFragment:

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);
    }

}

每当他们点击textview时,就会出现一个日期选择器。这样才行。但是每当设置日期时,我的ondateset中都有LOG,没有任何反应。

有人知道我做错了吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

你永远不会打电话给你

setOnDateSetListener(OnDateSetListener onDateSetListener)
DatePickerFragment上的

方法。

所以在创建DatePickerFragment时

 DatePickerFragment newFragment = new DatePickerFragment();
 newFragment.setOnDateSetListener(this);
 newFragment.show(getFragmentManager(), "datePicker");