我正在编写一个应用程序,用户可以购买建筑物(拖放图像按钮),允许他们在背景中移动到他们想要的位置。拖放效果很好,图像按钮的动态创建效果也很好。我甚至有共享偏好工作,以便记住建筑物所在的最后一个点的坐标,但实际的图像按钮在应用程序关闭并重新打开时显示为null。因此,它给了我坐标,但没有那里的按钮。我的问题是,我如何拥有应用程序"记住"是否已创建图像按钮,以便我可以在保存的坐标处显示按钮?
感谢任何帮助。感谢。
答案 0 :(得分:1)
您应该存储按钮所具有的图像的id,然后当调用onRestoreInstanceState时,或者如果您重新创建活动,则调用onCreate(),使用id重新初始化ImageButton。如果您是第一次动态加载它,则必须在重新创建活动时动态加载它!
将ImageButton作为全局变量。
private ImageButton myImageButton;
//Code....
public void onSaveInstanceState(Bundle b){
super.onSaveInstanceState(b);//THIS IS VERY IMPORTANT
b.putInt("image_1", idofyourimage); //This is where you store the id of the image
//you can store all sorts of data in the bundle, so use whatever works
//for you.
}
public void onRestoreInstanceState(Bundle b){
super.onRestoreInstanceState(b);//IMPORTANT
int imageId = b.getInt("image_1");
myImageButton = new ImageButton();
myImageButton.setImageResource(imageId);
//Any other stuff you need to do
}