重新启动活动后,我使用onSaveInstanceState和onRestoreInstanceState将图片位置保存在数组中。但这不起作用-重新启动活动数组重新工作后,这是什么问题?
int[] array_images = {
R.drawable.p_orange,
R.drawable.p_banana,
R.drawable.p_apple,
};
int index = -1;
private void updateImage()
{
index++;
if(index >= array_images.length)
index = 0;
ImageView imageView = (ImageView) findViewById(R.id.imageView);
imageView.setImageResource(array_images[index]);
}
@Override
public void onSaveInstanceState(Bundle outState) {
outState.putIntArray("array_images", array_images);
super.onSaveInstanceState(outState);
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
array_images = savedInstanceState.getIntArray("array_images");
}
btnNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
dialog.dismiss();
finish();
startActivity(getIntent());
updateImage();
}
});
最佳答案
在onRestoreInstanceState(Bundle savedInstanceState)
中,仅值将被恢复,但是视图将被重新创建。因此,一旦在onRestoreInstanceState(Bundle savedInstanceState)
中恢复值,甚至必须在onCreate()
中进行设置,就必须将所有值设置为视图,您也将在onCreate()
中收到保存的捆绑包。