你好我有这个代码
public class DateTimePicker extends android.support.v4.app.DialogFragment {
public interface DateTimePickerListener {
// public void onDialogPositiveClick(DialogFragment dialog);
// public void onDialogNegativeClick(DialogFragment dialog);
public void onDialogPositiveClick(android.app.DialogFragment dialog);
public void onDialogNegativeClick(android.app.DialogFragment dialog);
}
// Use this instance of the interface to deliver action events
DateTimePickerListener mListener;
DatePicker dp;
TimePicker tp;
int year;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
// Get the layout inflater
LayoutInflater inflater = getActivity().getLayoutInflater();
dp = (DatePicker) this.getActivity().findViewById(R.id.date_picker);
// tp = (TimePicker) this.getView().findViewById(R.id.time_picker);
// Inflate and set the layout for the dialog
// Pass null as the parent view because its going in the dialog layout
builder.setView(inflater.inflate(R.layout.date_time_picker, null))
// Add action buttons
.setPositiveButton(R.string.set, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
// sign in the user ...
year = dp.getDayOfMonth();
StringBuilder sb = new StringBuilder();
sb.append(year);
/* int day = dp.getDayOfMonth();
int month= dp.getMonth()+1;
int year = dp.getYear();
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
Date dt = new Date(day, month, year);
String formatedDate = sdf.format(dt);*/
ServiceActivity.tv.setText(sb.toString());
Toast.makeText(getActivity().getBaseContext(), "You selected set button ",
Toast.LENGTH_LONG).show();
}
})
.setNegativeButton(R.string.cansel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
DateTimePicker.this.getDialog().cancel();
}
});
return builder.create();
}
// Override the Fragment.onAttach() method to instantiate the DateTimePickerListener
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
// Verify that the host activity implements the callback interface
try {
// Instantiate the NoticeDialogListener so we can send events to the host
mListener = (DateTimePickerListener) activity;
} catch (ClassCastException e) {
// The activity doesn't implement the interface, throw exception
throw new ClassCastException(activity.toString()
+ " must implement DateTimePickerListener");
}
}
}
当我点击设置按钮程序崩溃时。我试过了
dp = (DatePicker) this.getView().findViewById(R.id.date_picker);
它崩溃我试过
dp = (DatePicker) this.dialog.findViewById(R.id.date_picker);
它崩溃了为什么会出错?
答案 0 :(得分:1)
在onCreateDialog
:
LayoutInflater inflater = LayoutInflater.from(getActivity());
View view = inflater.inflate(R.layout.date_time_picker, null );
dp = (DatePicker) view.findViewById(R.id.datePicker);
builder.setView(view, null))