重新启动活动后,我使用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()中收到保存的捆绑包。

10-04 20:39
查看更多