当前位置: 首页 > 知识库问答 >
问题:

将小部件保存在Bundle outState中

房子昂
2023-03-14

我正在Android Studio制作一个基本的游戏,如果玩家旋转屏幕,我希望所有的数据都被保存下来。因此,我使用受保护的空onSaveInstanceState(Bundle outstate),并用受保护的空onRestoreInstanceStave(Bundle SavedInstanceState)恢复它们,我有几个按钮已被编程操纵。那我该怎么把按钮放在州内?

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?
    }

共有1个答案

赖运珧
2023-03-14

您不能将整个小部件放在一个捆绑包中——即使在您的onCreative()方法中,btn1和btn2也只是对XML中按钮的id的引用。您可能可以将这些id(它们将是int,因此是可保存的)保存在已保存的InstanceState中,但这将是相当无用的。

当一个活动被销毁并重新创建时,整个屏幕将被重新绘制。如果您对按钮进行了任何更改(文本、颜色、数字计数等),则重新创建这些更改的方法是将任何值存储在捆绑包中,然后在onCreate()中使用这些值更新按钮。

 类似资料:
  • 我正在使用redis。数据库是 键入时: redis cli保存 我不知道在哪里倾倒。rdb保存到(因为redis是作为服务启动的,而不是在我的本地目录中)。 > 如何找到redis保存dump.rdb的位置? 有什么方法可以指定一个文件名来“保存”,所以我键入如下内容: redis cli保存~/db-2012-06-24。rdb公司 谢啦

  • 我正在尝试将一个xml文件保存到Android的内部存储中。但是,该文件没有得到保留。每次我重新启动模拟器时,该文件都会是空的。只有当我在应用程序中手动选择向其写入内容时,该文件才会被写入内容。然后,如果我关闭应用程序或其他什么,文件内容会被保留。但是,当我关闭模拟器时,文件会在那里,但是空的。 因此,我不确定我是否正确地保存了它。 请看看我的代码,也许它有问题,或者它与我的Android模拟器的

  • 问题内容: 语境 我正在使用redis。数据库小于100 MB。 但是,我想进行每日备份。 我也在Ubuntu Server 12.04上运行 输入时: redis-cli 保存 我不知道dump.rdb保存在哪里(因为redis是作为服务启动的,而不是在我的本地目录中)。 问题: 我如何找到Redis将我的dump.rdb保存到哪里? 是否可以指定一个文件名来“保存”,所以我输入如下内容: re

  • 我的应用程序将一些文件保存到设备上的数据/数据文件夹中。保存远程文件后,我会处理这些文件,并将它们复制到其他文件夹中。在之前测试过的所有设备上,All都能正常工作,但在galaxy s3上会生成空指针异常。似乎我不被允许在那个文件夹上写或处理文件!但只有新的星系s3!我也无法使用EclipseDDMS文件浏览器在数据文件夹中找到任何文件,而在模拟器(相同的android版本)中,我可以正确查看所有

  • 我正在制作一个soundboard应用程序,当长按按钮1时,我需要共享sound1。我可以用以下代码创建共享菜单: 我可以与whatsapp和Google Drive完美共享音频文件,但其他应用程序不起作用。我听说您必须将文件复制到外部存储,并从那里共享它们。我已经搜索了将近两天,但我找不到这样做的方法。Stack上的其他文章也帮不了我:/ 如何在外部存储器中创建目录,将文件(sound1.ogg