我使用 onSaveInstanceState 和 onRestoreInstanceState 在重新启动 Activity 后将图片位置保存在数组中。但它不起作用 - 重启后 Activity 数组重新工作,问题是什么?
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)
中,只会恢复值,但会重新创建您的 View 。因此,一旦您恢复 onRestoreInstanceState(Bundle savedInstanceState)
中的值,或者甚至可以在 onCreate()
中执行此操作,您都必须将所有值设置为 View ,您将收到也在 onCreate()
中保存了包。
关于java - 为什么我的阵列在重新启动 Activity 后重新工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38712613/