2014-11-27 4 views
1

내 코드는 다음과 같습니다. 내가 원하는 것은 제가 선택한 날짜에 따라 제목이 바뀌는 것입니다.android : DatePicker의 수신기가 작동하지 않습니다.

public class MainActivity extends ActionBarActivity { 


    private TimePicker timePicker; 
    private DatePicker datePicker; 
    private Calendar cal; 
    private int year; 
    private int month; 
    private int day; 
    private int hour; 
    private int minute; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     cal = Calendar.getInstance(); 
     year = cal.get(Calendar.YEAR); 
     month = cal.get(Calendar.MONTH) + 1; 
     day = cal.get(Calendar.DAY_OF_MONTH); 
     hour = cal.get(Calendar.HOUR_OF_DAY); 
     minute = cal.get(Calendar.MINUTE); 

     setTitle(year + "-" + month + "-" + day + "-" + hour + "-" + minute); 

     datePicker = (DatePicker) findViewById(R.id.datePicker); 
     timePicker = (TimePicker) findViewById(R.id.timePicker); 

     datePicker.init(year, month, day, new OnDateChangedListener() { 

      @Override 
      public void onDateChanged(DatePicker view, int year, int monthOfYear, 
        int dayOfMonth) { 
       // TODO Auto-generated method stub 
       setTitle(year + "-" + monthOfYear + "-" + dayOfMonth); 
      } 
     }); 

    } 

} 

시뮬레이터에서 실행하고 날짜를 변경하면 제목이 변경되지 않습니다.

+1

가능한 문제 목록에서 제외 할 수 있도록 setTitle 메서드를 추가해야합니다. –

+0

setTitle은 활동 방식입니다. – Kuno

+0

시도해보기 : ActionBar ab = getActionBar(); ab.setTitle (연도 + "-"+ monthOfYear + "-"+ dayOfMonth); 대신 setTitle (...); – Rami

답변

0

완전히 나를 위해 노력하고 날짜 선택 대화 상자 예 :이 코드는 내가 두 로그, 하나 개 밖에 다른 내부를 추가이 문제

+0

DatePickerDialog를 사용하고 싶지 않습니다. DatePicker가 작동하지 않는 이유를 알고 싶습니다. – wanghz

0

에서 당신을 도움이되기를 바랍니다

//declaration of DatePickerDialog// 
DatePickerDialog datePickerDialog; 
//intailizing the datePicakerDialog// 
datePickerDialog = new DatePickerDialog(this, dateSetListener, Calendar.getInstance().get(Calendar.YEAR), 
       Calendar.getInstance().get(Calendar.MONTH), Calendar.getInstance().get(Calendar.DAY_OF_MONTH)); 

//DatePickerDialog listerner 

DatePickerDialog.OnDateSetListener dateSetListener = new DatePickerDialog.OnDateSetListener() { 

     @SuppressWarnings("deprecation") 
     @Override 
     public void onDateSet(DatePicker view, int years, int monthOfYear, 
       int dayOfMonth) { 
       datePickerDialog.updateDate(
         Calendar.getInstance().get(Calendar.YEAR), Calendar 
           .getInstance().get(Calendar.MONTH), Calendar 
           .getInstance().get(Calendar.DAY_OF_MONTH)); 

      } 
     } 
    }; 

//Seting date on dismising thedate picker// 

datePickerDialog.setOnDismissListener(new DialogInterface.OnDismissListener() { 

      @Override 
      public void onDismiss(DialogInterface dialog) { 
       if (!isDateSet) { 
        datePickerDialog.updateDate(Calendar.getInstance().get(Calendar.YEAR), 
          Calendar.getInstance().get(Calendar.MONTH), 
          Calendar.getInstance().get(Calendar.DAY_OF_MONTH)); 

            } 
      } 
     }); 

.

Log.i("tag", "Outside"); 
    datePicker.init(year, month, day, new OnDateChangedListener() { 

     @Override 
     public void onDateChanged(DatePicker view, int year, int monthOfYear, 
       int dayOfMonth) { 
      // TODO Auto-generated method stub 
      Log.i("tag", "Go inside onDateChanged"); 
      setTitle(year + "-" + monthOfYear + "-" + dayOfMonth); 
     } 
    }); 

시뮬레이터에서 실행하면 다음과 같은 결과가 나타납니다. enter image description here

시뮬레이터에서 날짜를 변경하는 방법에 관계없이 "Go inside onDateChanged"라는 로그 정보가 없습니다.

관련 문제