2017-01-19 35 views
0

當我從縱向模式切換到橫向模式時,我的timePicker不保存。當我改變方向時它會重置。 它完美的作品,但當我旋轉我的手機,由於一些奇怪的原因,我設置的時間不會留在textView。當我從縱向模式切換到橫向模式時,我的timePicker不保存

我該如何解決這個問題?

@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函數中。在重新啓動期間,您必須檢索從Bundle保存的信息,這些信息將通過onCreate函數傳遞給您。要區分第一次啓動和重新啓動,請檢查Bundle傳遞是否爲空。

相關問題