java - 为什么我的阵列在重新启动 Activity 后重新工作?

标签 java android arrays

我使用 onSaveInstanceStateonRestoreInstanceState 在重新启动 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/

相关文章:

java - JOptionPane : Display button "Ok" after a certain amount of time

java - 更改数组列表内的值?

尝试在 C 中释放 3D 数组时崩溃

android - 如何禁用捏放大android studio模拟器?

Android 每隔 n 毫秒播放一次提示音

java - 使用可滑动的选项卡更改单个 fragment 中的数据

Java 顺序搜索在匹配时不返回 true

java - 如何使用String.hashCode生成主键

java - 开机后,运行DialogFragment时出错

java - 如何将 scala Int 转换为 java Integer?