我有一个测试应用程序,可以更改按钮上的图像。 我的测试应用程序应具有3个功能。 1.单击图像按钮时,将按钮上的背景图像从图像0更改为图像1。(我可以做到) 当您单击保存按钮时,应记录图像在图像按钮上的位置。 (我不能这样做) 重新启动应用程序时,单击加载按钮时,图像应显示在图像按钮上,该图像是使用保存按钮保存的。
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnSave:
saveText();
break;
case R.id.btnLoad:
loadText();
break;
case R.id.cardButton:
cardButton.setImageResource(R.drawable.n01);
cardButton.setTag(R.drawable.n01);
Integer resource = (Integer)cardButton.getTag();
default:
break;
}
}
void saveText() {
sPref = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor ed = sPref.edit();
"some code"
ed.apply();
Toast.makeText(this, "Text saved", Toast.LENGTH_SHORT).show();
}
void loadText() {
sPref = getPreferences(MODE_PRIVATE);
"some code"
Toast.makeText(this, "Text loaded", Toast.LENGTH_SHORT).show();
}
答案 0 :(得分:0)
在这种情况下,有多种情况可供考虑。
getPreferences()
方法来获取共享的Preferences,否则我们将使用getSharedPreferences()
方法。要查看更多信息,请参阅:https://developer.android.com/training/data-storage/shared-preferences editor.apply()
方法还是editor.commit()
方法查看更多内容,请参考:What's the difference between commit() and apply() in Shared Preference。
在这里,a建议您使用editor.commit()
方法,以便获得将值保存到共享首选项中的响应。还有一件事情是,如果您想将imageId
保存在共享的“首选项”中,则必须首先获取将其保存在“首选项”中的图像资源ID。喜欢:
ImageView imageView = (ImageView)findViewById(R.id..imageName);
int imageid = getResourceId(this,"profiles","drawable", getPackageName());
//save this imageid into your shareedPreferences and getback when you return.
// set this image id into the imageVire
imageView.setImageResouce(imageid);
public static int gerResourceId(context context, String variableName, String resourceName, String pakageName) throws RuntimeException{
return context.getResources().getIdentifier( variableName, resourceName, pakageName);
}
如果需要任何其他帮助,那么非常欢迎,我希望做正确的共享首选项流程,并且仅在其余代码可以正常工作时,此问题才能解决。谢谢。