2012-04-13 7 views
1

私は日付ピッカーを持っており、セットとキャンセルボタンを交換したいと思います。datepickerのボタンを相互交換する方法...?

私が試したとき、両方のボタンが機能しているだけです。

これを回避する方法と相互変更ボタン。

ここは私のコードです。

@Override 
    protected Dialog onCreateDialog(int id) { 
     Calendar c = Calendar.getInstance(); 
     int cyear = c.get(Calendar.YEAR); 
     int cmonth = c.get(Calendar.MONTH); 
     int cday = c.get(Calendar.DAY_OF_MONTH); 
     switch (id) { 
     case DATE_DIALOG_ID: 
      final DatePickerDialog datePicker = new DatePickerDialog(this, 
        mDateSetListener, cyear, cmonth, cday); 
      datePicker.setButton(DatePickerDialog.BUTTON_NEGATIVE, 
        this.getString(R.string.set), datePicker); 
      datePicker.setButton(DatePickerDialog.BUTTON_POSITIVE, 
        this.getString(R.string.cancel), datePicker);   
      return datePicker; 
     } 
     return null; 
    } 

    private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() { 
     public void onDateSet(DatePicker view, int year, int monthOfYear, 
       int dayOfMonth) { 
      selectedDay = Integer.parseInt(String.valueOf(dayOfMonth)); 
      selectedMonth = Integer.parseInt(String.valueOf(monthOfYear + 1)); 
      selectedYear = Integer.parseInt(String.valueOf(year)); 
      String date_selected = String.valueOf(monthOfYear + 1) + " /" 
        + String.valueOf(dayOfMonth) + " /" + String.valueOf(year); 

      textView.setText(date_selected); 

     } 
    }; 

ありがとうございます...!

答えて

2

setButton()メソッドの3番目の引数は、ボタンの押下を処理するリスナー(DialogInterface.OnClickListener)です。この引数としてDatePickerDialogを渡す場合、ボタンを押すと、ダイアログが初期化されたときにアタッチされたリスナー(この場合はmDateSetListener)が呼び出されます。両方のボタンはリスナとしてdatePickerを両方のボタンに渡すため、 "set"関数を呼び出しています。 datePicker.dismiss()を呼び出す新しいDialogInterface.OnclickListenerを作成し、それをポジティブボタンを設定するときに3番目の引数として使用してみてください。

+0

ありがとうございました..!私は、ダミーのdatepickerdialogをネイティブボタン用に作成しました。 – Noby

関連する問題