2017-12-18 24 views
0

必要なタイプのエラーを取得しています。 Actaully私の日付ピッカーダイアログのキャンセルリスナーを設定しようとしていますが、それを行うことができません。設定時に以下のコードが間違っている日付ピッカーダイアログキャンセルボタン

DatePickerDialog datePickerDialog = new DatePickerDialog(this, objDate, Integer.parseInt(getYear), 
           Integer.parseInt(monthNum) - 1, Integer.parseInt(getDay)).setButton(DialogInterface.BUTTON_NEGATIVE, 
           getString(R.string.cancel), 
           new DialogInterface.OnClickListener() { 
            public void onClick(DialogInterface dialog, int which) { 
             // do stuff 
            } 
           }); 
+0

あなたがDialogFragmentとあなたの活動やその断片を拡張し、 がDatePickerDialog.OnDateSetListener –

答えて

0

この

MainActivityをお試しください:

import android.app.AlertDialog; 
    import android.app.DatePickerDialog; 
    import android.app.Dialog; 
    import android.content.DialogInterface; 
    import android.os.Bundle; 
    import android.app.Activity; 
    import android.view.View; 
    import android.widget.Button; 
    import android.widget.DatePicker; 
    import android.widget.RelativeLayout; 
    import android.app.DialogFragment; 
    import android.widget.TextView; 
    import android.widget.Toast; 

    import java.text.DateFormat; 
    import java.util.Calendar; 
    import java.util.Date; 


    public class MainActivity extends Activity { 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 

      // Get the widgets reference from XML layout 
      final RelativeLayout rl = (RelativeLayout) findViewById(R.id.rl); 
      Button btn = (Button) findViewById(R.id.btn); 

      btn.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        // Initialize a new date picker dialog fragment 
        DialogFragment dFragment = new DatePickerFragment(); 

        // Show the date picker dialog fragment 
        dFragment.show(getFragmentManager(), "Date Picker"); 
       } 
      }); 
     } 

日付ピッカー:

public static class DatePickerFragment extends DialogFragment 
       implements DatePickerDialog.OnDateSetListener{ 

      @Override 
      public Dialog onCreateDialog(Bundle savedInstanceState){ 
       final Calendar calendar = Calendar.getInstance(); 
       int year = calendar.get(Calendar.YEAR); 
       int month = calendar.get(Calendar.MONTH); 
       int day = calendar.get(Calendar.DAY_OF_MONTH); 

       DatePickerDialog dpd = new DatePickerDialog(getActivity(), 
         AlertDialog.THEME_HOLO_LIGHT,this,year,month,day); 

       // Return the DatePickerDialog 
       return dpd; 
      } 

      public void onDateSet(DatePicker view, int year, int month, int day){ 
       // Do something with the chosen date 
      } 

      // Set a Listener for Dialog Cancel button click event 
      /* 
       onCancel(DialogInterface dialog) 
        This method will be invoked when the dialog is canceled. 
      */ 
      public void onCancel(DialogInterface dialog){ 
       // Send a message to confirm cancel button click 
       Toast.makeText(getActivity(),"Date Picker Canceled.", Toast.LENGTH_SHORT).show(); 
      } 
     } 
    } 
+0

がnullポインタ例外 – dev

+0

を送信するアプリを動作していないと実装に必要なログの猫を見せて –

0

あなたのコードの問題は、あなたが、ダイアログを作成し、この設定ボタンの後にしていることで、その結果をDatePickerDialogオブジェクトに割り当てます。しかしsetButtonはvoidを返します。したがって、DatePickerDialogに割り当てることはできません。ただ、このようなものをを分ける:

DatePickerDialog datePickerDialog = new DatePickerDialog(this, objDate, Integer.parseInt(getYear), 
            Integer.parseInt(monthNum) - 1, Integer.parseInt(getDay)); 

datePickerDialog.setButton(DialogInterface.BUTTON_NEGATIVE, 
            getString(R.string.cancel), 
            new DialogInterface.OnClickListener() { 
             public void onClick(DialogInterface dialog, int which) { 
              // do stuff 
             } 
            }); 
関連する問題