Java中的持久性[关闭]

Posted

技术标签:

【中文标题】Java中的持久性[关闭]【英文标题】:Persistance in Java [closed] 【发布时间】:2013-04-01 23:48:34 【问题描述】:

如何在 Java 中使用持久性?

【问题讨论】:

您可以使用 onSaveInstance() 在运行之间保存数据,并使用 SharedPreferences 更永久地保存数据。 共享首选项是实现您所要求的持久性级别的方法。你能发布你对他们的尝试吗? @AlexGittemeier 当我的选项是单选按钮时,我能够使应用程序以共享偏好工作,但我没有找到任何关于如何能够以我在这里使用的菜单格式工作的资源,有什么帮助吗? 【参考方案1】:

如果您将 item.getItemId() 存储在 SharedPreferences 中的 onOptionsItemSelected 中,然后将 switch 块移动到一个新函数,以便在您的 onCreate 中调用该新函数以恢复选择,该怎么办:

public void onCreate(Bundle savedInstanceState) 
    SharedPreferences prefs = getSharedPreferences("prefName", 0);
    int thicknessId = prefs.getInt("thicknessFieldName", 1); // Replace 1 with first-load state
    switchScribbleView(thicknessId);

    int colorId = prefs.getInt("colorFieldName", 4); // Replace 4 with first-load state
    switchScribbleView(colorId);

    //... rest of code


public boolean onOptionsItemSelected(MenuItem item) 
    int menuId = item.getItemId();

    //Get old values so they persist
    SharedPreferences prefs = getSharedPreferences("prefName", 0);
    int thicknessId = prefs.getInt("thicknessFieldName", 0);
    int colorId = prefs.getInt("colorFieldName", 0);

    if (menuId <= 2) // Control Thick and Thin
        thicknessId = menuId;
    else if (menuId >= 4) // Control Color
        colorId = menuId;

    Editor editor = getSharedPreferences("prefName", 0).edit();
    editor.putInt("thicknessFieldName", thicknessId);
    editor.putInt("colorFieldName", colorId);
    editor.commit();

    switchScribbleView(item.getItemId();
    return true;


private void switchScribbleView(int menuId) 
    switch (menuId) 
        //... switch block here
    

【讨论】:

作为一个额外的好处,这个实现将允许您只多显示 3-5 行选定的菜单项。

以上是关于Java中的持久性[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Java三大框架之——Hibernate中的三种数据持久状态和缓存机制

如何使用休眠将mysql与Java连接?例外:没有名为 org.hibernate.tutorial_jpa 的 EntityManager 的持久性提供程序 [关闭]

是否有任何众所周知的快速持久缓存解决方案? [关闭]

Java 之声:设置控件的持久性是啥?

在没有数据持久性的情况下,如何最好地在 Django 中压缩表单:最 Djangonic 的方法是啥? [关闭]

Tableau 中的持久性