使用 getSharedPreferences 获取时间

发布于 2024-10-15 06:09:46 字数 540 浏览 1 评论 0原文

我是 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); 
}

但这就是我似乎迷失的地方。我什至不确定我是否正朝着正确的方向前进。

I'm a complete beginner to Java and Android development and had a question about preferences.

A tutorial asked me to use preferences to read and save the time in which the onCreate method is called.

I've sat on this problem for at least two days but have come up with nothing. Can anyone give me an example on how to code such an action?

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); 
}

But that's where I seem to get lost. I'm not even sure if I'm heading in the right direction.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

绿光 2024-10-22 06:09:46

虽然我倾向于同意 Falmarri 对您的问题的评论,但我将提供一些指示...

在 onCreate() 中您应该做的第一件事是使用 new 创建 GregorianCalendar 的实例GregorianCalendar() 将其初始化为当前日期/时间。

接下来使用 getSharedPreferences 创建您的 SharedPreferences,然后使用其 edit() 方法获取编辑器。

存储时间的最简单方法是以毫秒为单位,因此请使用 GregorianCalendar getTimeInMillis 方法(继承自 Calendar)来获取 Long 结果。

最后,使用 SharedPreferences 编辑器的 putLong() 方法存储 getTimeInMillis 的结果,并使用编辑器的 commit() 方法使更改永久生效。

搜索这些页面将为您提供所需的所有信息...
Android 开发者

Although I tend to agree with Falmarri's comment on your question, I'll provide some pointers...

The first thing you should do in onCreate() is to create an instance of GregorianCalendar using new GregorianCalendar() to initialize it to current date/time.

Next use getSharedPreferences to create your SharedPreferences then get an editor using its edit() method.

The simplest way to store the time would be in milliseconds so use the GregorianCalendar getTimeInMillis method (inherited from Calendar) to get a Long result.

Finally, use the SharedPreferences editor's putLong() method to store the result of getTimeInMillis and use the editor's commit() method to make the change permanent.

Searching these pages will give you all the information you need...
Android Developers

海的爱人是光 2024-10-22 06:09:46

我建议您阅读开发指南中有关 SharedPreferences 的章节。您可以在此处找到它。

我建议您使用 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文档 了解如何使用其方法格式化/转换时间:)

I'd recommend you to read the dev guide's chapter about SharedPreferences. You can find it here.

I suggest you to use System.currentTimeMillis() to get the time value to save.

Basic code to save something to preferences should look like this:

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();
}

Then use android.text.format.Time class to format that time after reading it from preferences:

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
long timeMillis = settings.getLong("onCreateCallTime", 0);
Time t = new Time();
t.set(timeMillis);

Read the Time class documentation to learn how to format/convert time with its methods :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文