我正在嘗試改變方向。目前,當我旋轉手機時,我的片段中的圖像消失了。這顯然是因為活動被摧毀并重新創建。我沒有嘗試像圖像一樣保存如此大的數據,而是決定通過將圖像保存在該方法中來解決此問題:UrionSaveInstanceState@Override public void onSaveInstanceState(@NonNull Bundle outState) { super.onSaveInstanceState(outState); outState.putParcelable("imageUri", imageUri); }在我的片段中,我試圖檢索Uri并將其粘貼回,同時牢記空的可能性。onCreateViewImageView@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_top_image, container, false); imageView = view.findViewById(R.id.meme_image_view); imageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { selectedImage(v); } }); topTextView = view.findViewById(R.id.top_text_view); bottomTextView = view.findViewById(R.id.bottom_text_view); if(savedInstanceState != null){ if(imageUri != null){ Uri savedUri = savedInstanceState.getParcelable("imageUri"); imageView.setImageURI(savedUri); } } return view; }由于某種原因,它不起作用。當我旋轉手機時,圖像仍然丟失。
1 回答

寶慕林4294392
TA貢獻2021條經驗 獲得超8個贊
取代:
outState.putString(String.valueOf(imageUri), "imageUri");
跟:
outState.putParcelable("imageUri", imageUri);
并替換:
String raw = savedInstanceState.getString("imageUri"); Uri savedUri = Uri.parse(raw);
跟:
Uri savedUri = savedInstanceState.getParcelable("imageUri");
上的方法采用密鑰,后跟值。您有值,后跟鍵。而且,在 的情況下,您不需要將其轉換為 和 從 轉換為 。put...()
Bundle
Uri
String
添加回答
舉報
0/150
提交
取消