无法将活动强制转换为android.app.DatePickerDialog$OnDateSetListener
无法将实现OnDateChangedListener的活动的上下文(无法将活动强制转换为android.app.DatePickerDialog$OnDateSetListener,android,android-fragments,Android,Android Fragments,无法将实现OnDateChangedListener的活动的上下文()强制转换为OnDateSetListener活动是另一个类。但这里的问题是,您无法将OnDateChangedListener强制转换到接口OnDateSetListener 相反,尝试 public class DatePickerDialogFragment extends DialogFragment { private Context context; public DatePickerDialogF
)强制转换为OnDateSetListener活动
是另一个类。但这里的问题是,您无法将OnDateChangedListener
强制转换到接口OnDateSetListener
相反,尝试
public class DatePickerDialogFragment extends DialogFragment {
private Context context;
public DatePickerDialogFragment(Context context) {
this.context = context;
}
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Calendar c = Calendar.getInstance();
return new DatePickerDialog(context, (OnDateSetListener) context,
c.get(Calendar.YEAR), c.get(Calendar.MONTH),
c.get(Calendar.DAY_OF_MONTH));
}
}
public class mActivity extends SherlockFragmentActivity implements
OnDateSetListener {
dateField.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
android.support.v4.app.FragmentManager fm = getSupportFragmentManager();
DialogFragment newFragment = new DatePickerDialogFragment(mActivity.this);
newFragment.show(fm, "date_frag");
}
});
}
只要试试它的工作代码
new OnDateSetListener(){
//do something here.
};
public static class DatePickerFragment extends DialogFragment implements
DatePickerDialog.OnDateSetListener {
private int year, month, day;
private Button btn;
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
this.year = year;
this.month = monthOfYear;
this.day = dayOfMonth;
}
public void setObject(Button v) {
this.btn = v;
}
@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(), this, year, month, day);
}
}
public class SubmitPost extends SherlockFragmentActivity {
dateField.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DatePickerFragment newFragment = new DatePickerFragment();
newFragment.setObject(v);
newFragment.show(getSupportFragmentManager(), "datePicker"); }
});
}