2013-10-05 60 views
-1

我正在创建一个游戏,在该游戏中,用户每提问一次提示,当用户按下提示按钮时,提示计数必须减少1,我正在许多具有相同类型逻辑的活动。如何编辑数据并在需要的地方得到它。请帮助我保存一个int数并将其检索到其他活动

+0

第一次点击的价值有触发计数和然后单击按钮应该不会触发计数 – user2819290

回答

1

您可以将计数值保存在Application类的静态变量中。

在你AndroidManifest.xml你define.-

<application 
    android:allowBackup="true" 
    android:name=".YourApplicatinClass" 
    ... 

然后,每当你需要

YourApplicationClass.cont 
+0

我这里建议立即进行删除限定yourApplicationApplication – user2819290

+0

它应该成为YourApplicationClass.java文件中的一个类。但是,请注意,您可以在任何已有类中定义静态变量。 – ssantos

+0

首先单击activity1中的按钮,必须将cont减少1,并且在activity2中按钮的第一次单击必须将cont减少1,并且最终的cont值应该返回-2。从第二次点击它不应该触发连续值,是否有可能为上述编写代码。感谢您的回复 – user2819290

1

定义YourApplicationApplication类like.-

public class YourApplicationClass extends Application { 
    public static int cont = 0; 
} 

并获得cont值你应该只保存在SharedPreferences。 看看这Question,应该给你提示如何使用它。 你可以写一个静态方法来读取递减保存在那里

class Activity1{ 


    onClickListener(){ 
     GlobalSettings.getHits(context) 
    } 

} 


class Activity2{ 

    onClickListener(){ 
     GlobalSettings.getHits(context) 
    } 

} 



class GlobalSettings{ 
    private static String PREFS_NAME = "myprefs"; 
    private static String PREF_HITS = "hits"; 
    private static int START_VALUE = 10; 

    public static int getHits(Context context){ 
     SharedPreferences settings = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); 
     return settings.getInt(PREF_HITS, START_VALUE); 
    } 

    public static void incrementHits(Context context){ 
     SharedPreferences settings = getSharedPreferences(PREFS_NAME , 0); 
     SharedPreferences.Editor editor = settings.edit(); 

     editor.putInt(PREF_HITS, getHits(context) + 1); 
     editor.commit(); 
    } 

    public static void decrementHits(Context context){ 
     SharedPreferences settings = getSharedPreferences(PREFS_NAME , 0); 
     SharedPreferences.Editor editor = settings.edit(); 

     editor.putInt(PREF_HITS, getHits(context) - 1); 
     editor.commit();  
    } 

} 
+0

我已经使用Shared Prefs但我无法检索其他活动中的值并对其进行修改 – user2819290

+0

当然,您可以编辑和检索来自同一应用程序的所有活动的值。 –

+0

你能举两个活动吗 – user2819290

相关问题