单击Button时出现TimePickerDialog并显示我在TextView上选择它的时间。当我离开活动并返回时,textView为空。我想保存此textView的状态
下面是TimePickerDialog.OnTimeSetListener
的代码private TimePickerDialog.OnTimeSetListener TimePickerListener =
new TimePickerDialog.OnTimeSetListener() {
public void onTimeSet(TimePicker view, int hour, int minute) {
switch (timePickerInput) {
case R.id.set_sabah:
mCalen.set(Calendar.HOUR_OF_DAY, hour);
mCalen.set(Calendar.MINUTE, minute);
int hour12format = mCalen.get(Calendar.HOUR);
hourOfDay = mCalen.get(Calendar.HOUR_OF_DAY);
minute = mCalen.get(Calendar.MINUTE);
ampm = mCalen.get(Calendar.AM_PM);
String ampmStr = (ampm == 0) ? "AM" : "PM";
s1 = "Time is set in " + hour12format + " : " + minute + " " + ampmStr;
Toast.makeText(getApplicationContext(),s1 , Toast.LENGTH_LONG).show();
txtS.setText(s1);
break;
case R.id.set_masaa:
mCalen.set(Calendar.HOUR_OF_DAY, hour);
mCalen.set(Calendar.MINUTE, minute);
int hour12format2 = mCalen.get(Calendar.HOUR);
hourOfDay = mCalen.get(Calendar.HOUR_OF_DAY);
minute = mCalen.get(Calendar.MINUTE);
ampm = mCalen.get(Calendar.AM_PM);
String ampmStr2 = (ampm == 0) ? "AM" : "PM";
s2 = "Time is set in " + hour12format2 + " : " + minute + " " + ampmStr2;
Toast.makeText(getApplicationContext(),s2 , Toast.LENGTH_LONG).show();
txtM.setText(s2);
break;
}
setAlarm(mCalen);
}
};
我尝试通过下面的代码保存了Instance状态
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
savedInstanceState.putString("savedS1", txtS.getText().toString());
savedInstanceState.putString("savedS2", txtM.getText().toString());
及以下是onRestoreInstanceState
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
String s1 = savedInstanceState.getString("savedS1");
String s2 = savedInstanceState.getString("savedS2");
txtS.setText(s1);
txtM.setText(s2);
}
我知道这个解决方案是错误的,但我会很感激。
答案 0 :(得分:0)
然后,如果要在关闭活动后保存值的状态,那么您应该选择共享首选项: http://developer.android.com/reference/android/content/SharedPreferences.html