2017-01-19 1 views
0

세로 모드에서 가로 모드로 변경하면 내 timePicker가 저장되지 않습니다. 방향을 바꿀 때 재설정됩니다. 완벽하게 작동하지만 휴대 전화를 돌릴 때 내가 설정 한 시간이 이상한 이유로 textView에 남아 있지 않습니다.가로 모드에서 가로 모드로 변경할 때 내 시간 선택기가 저장되지 않습니다.

어떻게 해결할 수 있습니까?

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


selecteddate = (TextView)findViewById(R.id.date); 
    AccessTime = (TextView) findViewById(R.id.time); 
    DisplayTime = (TextView) findViewById(R.id.time); 

    AccessTime.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      calendar = Calendar.getInstance(); 
      CalendarHour = calendar.get(Calendar.HOUR_OF_DAY); 
      CalendarMinute = calendar.get(Calendar.MINUTE); 


      timepickerdialog = new TimePickerDialog(amino_acid.this, 
        new TimePickerDialog.OnTimeSetListener() { 

         @Override 
         public void onTimeSet(TimePicker view, int hourOfDay, 
               int minute) { 

          if (hourOfDay == 0) { 

           hourOfDay += 12; 

           format = "AM"; 
          } else if (hourOfDay == 12) { 

           format = "PM"; 

          } else if (hourOfDay > 12) { 

           hourOfDay -= 12; 

           format = "PM"; 

          } else { 

           format = "AM"; 
          } 


          DisplayTime.setText(hourOfDay + ":" + minute + format); 
         } 
        }, CalendarHour, CalendarMinute, false); 
      timepickerdialog.show(); 

     } 
    }); 
+0

일부 코드를 게시하고 작동하지 않는 부분에 대한 세부 정보를 추가 할 수 있습니까? – Sid

+0

시간 선택기 코드 –

+0

내 전화를 돌릴 때까지 내 코드가 완벽하게 작동합니다. 가로 모드에서 설정 한 시간은 textview에 표시되지 않습니다. – alma

답변

0

전화 방향이 변경되면 컨텍스트 저장이 자동으로 수행되지 않습니다. 실제로 오리엔테이션이 변경되면 앱이 닫히고 다시 시작됩니다. 이전 상태로 복구하려면 입력 된 데이터를 onSaveInstanceState 기능에 저장해야합니다. 다시 시작하는 동안 onCreate 함수에서 전달되는 Bundle에 저장된 정보를 검색해야합니다. 첫 번째 시작과 다시 시작을 구별하려면 Bundle이 null인지 아닌지 확인하십시오.

관련 문제