gpt4 book ai didi

java - 将小部件保存在 Bundle outState 中

转载 作者:行者123 更新时间:2023-12-02 09:55:28 25 4
gpt4 key购买 nike

我正在Android studio中制作一个基本游戏,如果玩家旋转屏幕,我希望保存所有数据。因此,我使用 protected void onSaveInstanceState(Bundle outstate) 并使用 protected void onRestoreInstanceStave(Bundle savingInstanceState) 恢复它们,并且我有一些已通过编程方式操作的按钮。那么我该如何将 Button 放入 outState 中呢?

import ...
public class MainActivity extends AppCompatActivity {
Button btn1, btn2;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

btn1 = findViewById(R.id.btn_yes);
btn2 = findViewById (R.id.btn_no);
}
protected void onSaveInstanceState(Bundle outState) {
//How to put buttons in outState?
}
protected void onRestoreInstanceState(Bundle savedInstanceState) {
//How to get buttons in savedInstanceState?
}

最佳答案

您不能将整个小部件放入一个包中 - 即使在您的 onCreate() 方法中,btn1 和 btn2 也只是对 XML 中按钮 id 的引用。您或许可以将这些 id(它们是整数,因此可以保存)保存在 savingInstanceState 中,但这毫无用处。

当一个 Activity 被销毁并重新创建时,整个屏幕都会重新绘制。如果您对按钮进行了任何更改(文本、颜色、数量等),则重新创建这些更改的方法是将任何存储在 bundle 中,然后使用它们更新按钮onCreate()

关于java - 将小部件保存在 Bundle outState 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56038720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com