Java 如何将onSavedInstanceState与小部件一起使用?
我正在学习一个应用程序的屏幕旋转,我遇到了这个问题,并尝试了一下 我的问题是,当我尝试使用按钮小部件时,它的文本仍然是空白的。单击该按钮时,会出现一个日期选择器对话框来选择日期。但如果在进行选择后旋转屏幕,则先前选择的日期将丢失 这是我的代码:Java 如何将onSavedInstanceState与小部件一起使用?,java,android,android-savedstate,Java,Android,Android Savedstate,我正在学习一个应用程序的屏幕旋转,我遇到了这个问题,并尝试了一下 我的问题是,当我尝试使用按钮小部件时,它的文本仍然是空白的。单击该按钮时,会出现一个日期选择器对话框来选择日期。但如果在进行选择后旋转屏幕,则先前选择的日期将丢失 这是我的代码: startDate.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { setDate(st
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"));
}
以下是一些图片:
尝试使用onSaveInstanceStateBundle outState的版本,只使用一个参数。另一个是当您在清单中设置了一个属性,以便活动在重新启动期间保持不变时