你好我有这个密码

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

它崩溃了怎么了?

最佳答案

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

关于android - 如何从对话框 fragment 获取日期选择器属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31071039/

10-13 03:26