Java SharedReferences和TimePickerDialog
万岁Java SharedReferences和TimePickerDialog,java,android,sharedpreferences,timepicker,Java,Android,Sharedpreferences,Timepicker,万岁 我正在尝试编写我的第一个Android应用程序,但我遇到了困难 我想允许用户为每日计划设置“开始”和“停止”时间。我已经成功地实现了TimePickerDialog和它旁边的TextView,但我一辈子都不知道如何将用户选择的时间保存到SharedReferences字符串中 代码如下所示(为了清晰起见,将其精简): 我假设在更新TextView的同时应该节省时间。。。但我不知道怎么做-- 我现在花了5到6个小时寻找答案,但实际上我找不到答案。我已经试用过SharedReferences.
我正在尝试编写我的第一个Android应用程序,但我遇到了困难 我想允许用户为每日计划设置“开始”和“停止”时间。我已经成功地实现了TimePickerDialog和它旁边的TextView,但我一辈子都不知道如何将用户选择的时间保存到SharedReferences字符串中 代码如下所示(为了清晰起见,将其精简): 我假设在更新TextView的同时应该节省时间。。。但我不知道怎么做-- 我现在花了5到6个小时寻找答案,但实际上我找不到答案。我已经试用过SharedReferences.Editor,但这不起作用,因为我需要将时间存储为长时间,而不是字符串。
我已经穷途末路了,我真的非常感谢你的帮助 在以下方法中
// updates the time we display in the TextView
private void updateDisplayStart() {
mTimeDisplayStart.setText(
new StringBuilder()
.append(padStart(mHourStart)).append(":")
.append(padStart(mMinuteStart)));
});
SharedPreferences settingsActivity = getSharedPreferences("todolist1",
Activity.MODE_PRIVATE);
SharedPreferences.Editor prefEditor = settingsActivity.edit();
prefEditor.putString("DateToDisplay",new StringBuilder()
.append(padStart(mHourStart)).append(":")
.append(padStart(mMinuteStart)); // updates the time we display in the TextView
prefEditor.commit();
}
在此之后,您希望从共享首选项中检索数据的位置如下
SharedPreferences settingsActivity = getSharedPreferences("todolist1",
Activity.MODE_PRIVATE);
if (settingsActivity.contains(DateToDisplay)) {
String saveddate = settingsActivity
.getString(DateToDisplay, "");
用下面的方法
// updates the time we display in the TextView
private void updateDisplayStart() {
mTimeDisplayStart.setText(
new StringBuilder()
.append(padStart(mHourStart)).append(":")
.append(padStart(mMinuteStart)));
});
SharedPreferences settingsActivity = getSharedPreferences("todolist1",
Activity.MODE_PRIVATE);
SharedPreferences.Editor prefEditor = settingsActivity.edit();
prefEditor.putString("DateToDisplay",new StringBuilder()
.append(padStart(mHourStart)).append(":")
.append(padStart(mMinuteStart)); // updates the time we display in the TextView
prefEditor.commit();
}
在此之后,您希望从共享首选项中检索数据的位置如下
SharedPreferences settingsActivity = getSharedPreferences("todolist1",
Activity.MODE_PRIVATE);
if (settingsActivity.contains(DateToDisplay)) {
String saveddate = settingsActivity
.getString(DateToDisplay, "");
你必须这样做
private TimePickerDialog.OnTimeSetListener mTimeSetListenerStart =
new TimePickerDialog.OnTimeSetListener() {
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
mHourStart = hourOfDay;
mMinuteStart = minute;
updateDisplayStart();
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, hourOfDay);
cal.set(Calendar.MINUTE, minute);
mUserSettings.edit().putLong("starttime", cal.getTimeInMillis()).commit();
}
};
你必须这样做
private TimePickerDialog.OnTimeSetListener mTimeSetListenerStart =
new TimePickerDialog.OnTimeSetListener() {
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
mHourStart = hourOfDay;
mMinuteStart = minute;
updateDisplayStart();
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, hourOfDay);
cal.set(Calendar.MINUTE, minute);
mUserSettings.edit().putLong("starttime", cal.getTimeInMillis()).commit();
}
};
SharedReferences
支持long
s。你可以这样做
SharedReferences prefs=getSharedReferences(“prefs”,Context.MODE\u PRIVATE);
prefs.edit().putLong(“longKey”,longValue).commit();
来存储值。要检索它,您可以执行以下操作
SharedReferences prefs=getSharedReferences(“prefs”,Context.MODE\u PRIVATE);
long longValue=prefs.getLong(“longKey”,0l);
SharedReferences
支持long
s。你可以这样做
SharedReferences prefs=getSharedReferences(“prefs”,Context.MODE\u PRIVATE);
prefs.edit().putLong(“longKey”,longValue).commit();
来存储值。要检索它,您可以执行以下操作
SharedReferences prefs=getSharedReferences(“prefs”,Context.MODE\u PRIVATE);
long longValue=prefs.getLong(“longKey”,0l);
此代码用于编辑共享参考文件:-
X==获取信息此代码用于编辑共享参考文件:-
X==获取信息感谢您的及时回答!只是一些事情;我刚刚复制并粘贴了代码。我这样做对吗?我似乎在
prefEditor.putString(“DateToDisplay”,new StringBuilder()上遇到语法错误
行,以及该行下面的所有代码。prefEditor
是自定义活动,还是需要导入?我在android.content repository中找不到它。再次感谢!感谢您的及时回答!不过,只是做了几件事;我刚刚复制并粘贴了该代码。我这样做对吗?我似乎在页面上遇到了语法错误prefEditor.putString(“DateToDisplay”,新的StringBuilder()
行,以及下面的所有代码。prefEditor
是自定义活动,还是需要导入?我在android.content存储库中找不到它。再次感谢!好的,请澄清,longKey
是SharedReferences条目,longValue
是时间(以hh:mm格式)我需要存储的是什么?好的,那么澄清一下,longKey
是SharedReferences条目,longValue
是我需要存储的时间(hh:mm格式)?这不只是设置“开始时间”吗
到当前时间?我还是会尝试一下。谢谢!这是一个示例代码,用于在首选项中放置长数据,您可以用自己的方式修改它。和cal.getTimeInMillis()将返回您在“time piker”对话框上设置的日期。太棒了!现在我只需要解决如何将毫秒改回正常时间,您就解决了问题!非常感谢!!这不仅仅是设置“starttime”吗
到当前时间?我还是会尝试一下。谢谢!这是一个示例代码,用于在首选项中放置长数据,您可以用自己的方式修改它。和cal.getTimeInMillis()将返回您在time piker对话框上设置的日期。太棒了!现在我只需要解决如何将毫秒更改回正常时间,您就解决了问题!非常感谢!!