Timepicker的时间在屏幕旋转时丢失

时间:2011-10-19 19:33:28

标签: java android

我的活动包含以下代码。

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    // set time picker values
    TimePicker picker = (TimePicker) findViewById(R.id.startTimePicker);

    picker.setIs24HourView(true);

    picker.setCurrentHour(10);
    picker.setCurrentMinute(15);        
}

因此,时间选择器设置为固定时间,这可以按预期工作。 但是当我旋转屏幕并重新创建活动时,时间选择器在所有字段中显示相同的值 - 而不是值集。这发生在屏幕上的一个,两个或更多时间选择器上。

有没有人解释这种奇怪的行为?

1 个答案:

答案 0 :(得分:0)

显然,当您将时间选择器设置调用放在 onResume()中时,问题就解决了。

这真的很奇怪,因为onCreate也被调用旋转并且方法被击中, 但必须有一些控制本身的逻辑被调用,这导致了这一点。

所以这是“修复”:

@Override
protected void onResume()
{
     super.onResume();
     TimePicker picker = (TimePicker) findViewById(R.id.startTimePicker);

     picker.setCurrentMinute(10);
     picker.setCurrentHour(12);
}