0
我正在使用int设置屏幕设置我的应用程序的背景。它在目前的活动中工作得很好。但是一旦我离开活动,int值就会丢失,背景也不会改变。保存和读取int - android
我想做的事:我要拯救我的设置活动的INT,然后将其导入到我的其他活性及检查INT“明博”等于空,“BG”,“BG1”或“BG2”。
我听说过sharedPreferences,但从来没有得到它的工作。这就是为什么我打开一个新的线程。
我正在使用int设置屏幕设置我的应用程序的背景。它在目前的活动中工作得很好。但是一旦我离开活动,int值就会丢失,背景也不会改变。保存和读取int - android
我想做的事:我要拯救我的设置活动的INT,然后将其导入到我的其他活性及检查INT“明博”等于空,“BG”,“BG1”或“BG2”。
我听说过sharedPreferences,但从来没有得到它的工作。这就是为什么我打开一个新的线程。
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语句即可。
int会在导入时被命名为“key”吗?还是保留它以前的名称? (Bak) – 2012-02-15 07:56:30
您可以用任何名称导入它,并且它将被命名为'name = getString(key,default)'的任何变量' – 2012-02-15 13:44:24
THX!它在我的代码中工作。对任何想要使用这段代码的人的建议是记住pass.edit();应该被替换为(在这种情况下)data.edit();或者你只是想知道“通过”有什么问题。 – 2012-02-18 17:59:17