gpt4 book ai didi

java - 如何将 onSavedInstanceState 与小部件一起使用?

转载 作者:行者123 更新时间:2023-12-02 11:19:14 26 4
gpt4 key购买 nike

我正在学习应用程序的屏幕旋转,我遇到了这个example我尝试了一下。

我的问题是,当我使用按钮小部件尝试此操作时,它的文本仍然是空白。单击该按钮时,将出现一个日期选择器对话框以选择日期。但如果选择后旋转屏幕,则先前选择的日期将丢失。

这是我的代码:

startDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setDate(startDate);
}
});

public void setDate(final Button B)
{
final Calendar calender = Calendar.getInstance();
day = calender.get(Calendar.DAY_OF_MONTH);
month = calender.get(Calendar.MONTH);
year = calender.get(Calendar.YEAR);

DatePickerDialog pickDate = new DatePickerDialog(add_event.this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
calender.set(i,i1,i2);
SimpleDateFormat dateFormat1 = new SimpleDateFormat("dd-MM-yyyy");
String dateString = dateFormat1.format(calender.getTime());
B.setText(dateString);
}
},year,month,day);
pickDate.show();
}

@Override
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
super.onSaveInstanceState(outState, outPersistentState);
outState.putString("startDate", startDate.getText().toString());
}

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
startDate.setText(savedInstanceState.getString("startDate"));
}

以下是一些图片:

enter image description here

enter image description here

最佳答案

尝试使用只有一个参数的 onSaveInstanceState(Bundle outState) 版本。另一种情况是当您在 list 中设置了属性以使 Activity 在重新启动后持续存在时。

关于java - 如何将 onSavedInstanceState 与小部件一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50055165/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com