2012-02-14 62 views
0

我正在使用int设置屏幕设置我的应用程序的背景。它在目前的活动中工作得很好。但是一旦我离开活动,int值就会丢失,背景也不会改变。保存和读取int - android

我想做的事:我要拯救我的设置活动的INT,然后将其导入到我的其他活性及检查INT“明博”等于空,“BG”,“BG1”或“BG2”。

我听说过sharedPreferences,但从来没有得到它的工作。这就是为什么我打开一个新的线程。

回答

4

OK,添加这些全局变量

SharedPreferences data; 
public static String filename = "whateveryou want"; 

初始化它的onCreate

data = getSharedPreferences(filename, 0); 

然后添加一些内容,利用这一点,与"key"是一个独特的描述符和name是变量名您要存储

 SharedPreferences.Editor editor = data.edit(); 
     editor.putInt("key", name); 
     editor.commit(); 

access通过这个,其中default是你想要的变量如果没有偏好存在的话。

intVariable = data.getInt("key", default); 

编辑:

我注意到你想使用字母,例如BG1等。要做到这一点,你需要使用一个字符串,或使用int与一个开关盒或多个if语句。这是您可以修改的开关盒示例。只需确保在之后的之后的开关盒声明中访问了先前代码块中的SharedPreference。

switch (integerVariable){ 
    case 1: // if the intagerVariable = 1, notice the : not a ; 
     // set background to BG1 
    break; 
    case 2: // if the intagerVariable = 2, notice the : not a ; 
     // set background to BG2 
    break; 
} 

只需根据需要添加尽可能多的case语句即可。

+0

int会在导入时被命名为“key”吗?还是保留它以前的名称? (Bak) – 2012-02-15 07:56:30

+0

您可以用任何名称导入它,并且它将被命名为'name = getString(key,default)'的任何变量' – 2012-02-15 13:44:24

+0

THX!它在我的代码中工作。对任何想要使用这段代码的人的建议是记住pass.edit();应该被替换为(在这种情况下)data.edit();或者你只是想知道“通过”有什么问题。 – 2012-02-18 17:59:17