我完全是一个Java和Android开发的初学者,我有一个关于偏好的问题。
一篇教程要求我使用首选项来读取和保存调用onCreate方法的时间。
我已经在这个问题上坐了至少两天了,但什么也没想出来。有没有人能给我举个例子,告诉我如何编写这样的动作?
public static final String PREFS_NAME = "Time_Pref";
public class QuizSplashActivity extends QuizActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
SharedPreferences = getSharedPreferences ("Time_Pref", "MODE_PRIVATE);
}但这就是我似乎迷路的地方。我甚至不确定我是否在朝着正确的方向前进。
发布于 2011-02-02 07:46:14
我建议你阅读开发指南中关于SharedPreferences的章节。你可以在here上找到它。
我建议您使用System.currentTimeMillis()来获取要保存的时间值。
将某些内容保存到首选项的基本代码应如下所示:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// view setup stuff here...
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putLong("onCreateCallTime", System.currentTimeMillis());
editor.commit();
}然后在从首选项中读取时间后,使用android.text.format.Time类对时间进行格式化:
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
long timeMillis = settings.getLong("onCreateCallTime", 0);
Time t = new Time();
t.set(timeMillis);阅读Time类documentation,了解如何使用其方法格式化/转换时间:)
发布于 2011-02-02 06:59:37
虽然我倾向于同意Falmarri对你问题的评论,但我会提供一些建议……
在onCreate()中应该做的第一件事是使用new GregorianCalendar()创建一个GregorianCalendar实例,将其初始化为当前日期/时间。
接下来,使用getSharedPreferences创建您的SharedPreferences,然后使用其edit()方法获得一个编辑器。
存储时间的最简单方法是以毫秒为单位,因此使用Calendar getTimeInMillis方法(继承自GregorianCalendar )来获得Long结果。
最后,使用SharedPreferences编辑器的putLong()方法存储getTimeInMillis的结果,并使用编辑器的commit()方法使更改永久化。
搜索这些页面将为您提供所需的所有信息...Android Developers
https://stackoverflow.com/questions/4868694
复制相似问题