【问题标题】:how to save and retrive data from the last run of an android application?如何保存和检索上次运行的 android 应用程序的数据?
【发布时间】:2012-03-14 04:14:58
【问题描述】:

我必须为我的大学课程作业创建一个小型 android 应用程序,它提出 10 道数学问题,并从用户那里获取答案来计算分数。

该程序应该有一个带有“新游戏”按钮和一个“继续”按钮的主屏幕。

如果用户按下继续按钮,我如何编程以在应用程序运行期间保存数据并从存储的位置检索它们以从该点继续? (我应该寻找什么样的方法来完成这样的任务?)

提前致谢。

【问题讨论】:

标签: android save continue


【解决方案1】:

只需使用偏好来存储和检索代码中的值。这里是sn-p

//Set Preference
SharedPreferences myPrefs = getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
SharedPreferences.Editor prefsEditor;  
prefsEditor = myPrefs.edit();  
prefsEditor.putString("REFKEY", valuetobestored);
prefsEditor.commit();

//Get Preferenece  
SharedPreferences myPrefs;  
myPrefs = getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
String output=myPrefs.getString("REFKEY", "");

【讨论】:

    【解决方案2】:

    这取决于您要存储的数据类型。如果它真的很基本,您可能希望将它们作为名称值对存储在 onSaveInstanceState 方法中或作为 PreferencesonPause 方法中,如果它有点复杂,您可能希望存储在 @ 987654324@.

    guide

    在放置之前调用方法 onSaveInstanceState(Bundle) 活动在这样的后台状态,让你保存任何 将您的活动中的动态实例状态放入给定的Bundle中,以 如果活动需要,稍后在 onCreate(Bundle) 中收到 重新创建。有关更多信息,请参阅流程生命周期部分 流程的生命周期如何与它所从事的活动相关联 托管。 请注意,将持久数据保存在 onPause() 而不是 onSaveInstanceState(Bundle) 因为后者是 不是生命周期回调的一部分,因此不会在每个回调中调用 文档中描述的情况。

    这是您在 onSaveInstanceState 中保存数据的方式:Saving Android Activity state using Save Instance State

    这是在首选项中保存数据的方法:Making data persistent in android

    【讨论】:

      【解决方案3】:

      只需使用 SharedPreferences。查看此链接以获取更多详细信息。 2一大早给大家举个我自己的例子:P

      How do I get the SharedPreferences from a PreferenceActivity in Android?

      只要应用程序安装在设备上,这些首选项就会持续存在。如果你删除一个,它也会删除它们。

      另一件很酷的事情您可能想知道,如果您想检查您的应用程序是否处于首次运行状态,那么只需检查存储的布尔值(或未存储在第一次运行时) ) 在设备上。 :) 如果没有(它将返回默认值),那么只需将其值更改为 true 或其他内容,因为您每次运行应用程序时都会检查它,您会知道这不是第一次运行 :)

      希望这会有所帮助,干杯。

      【讨论】:

        【解决方案4】:

        这可能不是最好的解决方案..但这是获得所需功能的一种方式.. 在单击继续按钮时输入此代码

        finish();
                         Intent k=new Intent(youractivitytivity.this,youractivity.class);
        k.putExtra("qno",x+1)<---- next question number to appear on screen(x is the present question number)
        k.putExtra("score",bool)<--- if the answer is right or wrong)
                         startActivity(k);
        

        然后在创建您的活动时......获取额外内容并检查您必须显示的问题...... 我想你有 10 个问题。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-05-30
          • 1970-01-01
          • 1970-01-01
          • 2021-05-03
          • 1970-01-01
          • 2016-07-15
          相关资源
          最近更新 更多