0

我有点卡在 onSaveInstanceState 和 onRestoreInstanceState 中,每次我运行模拟器时,在从图库中获取图像并出现在屏幕上之后。当我旋转它时,图片消失了。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == GALLERY_REQUEST_CODE && resultCode == RESULT_OK && data != null){
    imageUri = data.getData();
    imageView.setImageURI(imageUri);
    }
}

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putParcelable("image", imageUri);
}

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    savedInstanceState.getParcelable("image");
    imageView.setImageURI(imageUri);
}
}

我错了哪一部分?
它在“savedInstanceStae.getParcelable .....”上吗?
我不知道如何保存 imageView 状态
再次感谢您的帮助

4

1 回答 1

0

您必须在状态恢复时设置 imageUri 变量。

@Override
    protected void onRestoreInstanceState(Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);
        imageUri = savedInstanceState.getParcelable("image");
        imageView.setImageURI(imageUri);
    }
于 2020-06-27T05:51:01.517 回答