SharedPreference
只是一个文件,您可以从中保存和检索值。以下是在活动中使用 a 的最简单步骤SharedPreference
:
您需要创建一个sP
指向SharedPreferences
您将使用的文件的变量:
SharedPreferences sP = getSharedPreferences("MyPrefs", MODE_PRIVATE);
您需要创建一个变量,该变量sPeD
将指向该文件的“编辑器”,这将使您可以将值放入该文件:
SharedPreferences.Editor sPeD = sP.edit();
然后,您可以从该文件中提取存储的值。这些值由String
您定义的“键”索引:
String myString = sP.getString("keyTextYouDefine", "Oops!");
如果 key处没有存储值,"keyTextYouDefine"
则等于。getString()
myString
"Oops!"
为了存储该键的值,请使用以下命令:
sPeD.putString("keyYouDefine","The string I want to save.");
sPeD.commit();
如果您commit()
在将内容放入文件后忘记执行操作,那么它们实际上并没有放在那里。
这应该会让你顺利上路。
稍后添加:
然后,您可以使用它来确定按钮上的图像。
假设您已经正确定义了您的按钮
Button button = findViewById(R.id.myButton) // or whatever you are actually using
然后从任何地方设置图像,如果有任何东西存储在ShardPreference
int which = sP.getInt("WhichImage", 1); // assuming image1 is the "default"
switch (which) {
case 1:
button.setCompoundDrawables(null, @drawable/image1, null, null);
break;
case 2:
button.setCompoundDrawables(null, @drawable/image2, null, null);
break;
default: // no image
}
在您的活动的其他地方,当您决定将按钮图像切换到 image2 时:
if (whatever) { // condition for changing to image 2
button.setCompoundDrawables(null, @drawable/image2, null, null);
sP.edit().putInt("WhichImage", 2).commit();
}
我从未使用过setCompoundDrawables()
自己,因此您的里程可能会有所不同。