我在这里遇到了问题,所以这是我的片段:
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,没有任何反应。
有人知道我做错了吗?
提前致谢!
答案 0 :(得分:0)
你永远不会打电话给你
setOnDateSetListener(OnDateSetListener onDateSetListener)
DatePickerFragment上的方法。
所以在创建DatePickerFragment时
DatePickerFragment newFragment = new DatePickerFragment();
newFragment.setOnDateSetListener(this);
newFragment.show(getFragmentManager(), "datePicker");