gpt4 book ai didi

android - 从android中的包中检索数据

转载 作者:行者123 更新时间:2023-11-29 22:18:35 25 4
gpt4 key购买 nike

所以我设法解决了从 bundle 中检索信息的问题,但我不得不做一些我认为很奇怪的事情。我首先尝试的方法是这样的:

public void onCreate(Bundle savedInstanceState) {  
super.onCreate(savedInstanceState);
list = savedInstanceState.getInt("listmenu");
}

这就是我将信息放入包中并调用 Activity 的方式:

Intent myIntent = new Intent(MainActivity.this, NewActivity.class);
myIntent.putExtra("listmenu", R.menu.listmenu);
MainActivity.this.startActivity(myIntent);

但这没有用。它只会在第 3 行崩溃,这是我尝试 getInt 的列表(我无法找出确切原因,但它没有用)。

然后在谷歌搜索之后我尝试了这种方式:

public void onCreate(Bundle savedInstanceState) {  
super.onCreate(savedInstanceState);
Bundle extras = getIntent().getExtras();
list = extras.getInt("listmenu");
}

在我看来,getIntent().getExtras() 只会返回 savedInstanceState。但如果是这种情况,那么我的第一种方法就会奏效。所以我一定是误解了 savedInstanceState 是什么,或者 getIntent() 做了什么,那么有人可以解释一下这两者之间的区别吗?

最佳答案

如果 Activity 被销毁然后重新创建,即在配置更改时,一个包将传递给 onCreate()。如果您想在重新创建 Activity 时保存数据,则需要覆盖 onSaveInstanceState。这个包将被传递给 onCreate 和 onRestoreInstanceState。

您包含的第二个代码块对于读取传递给新启动 Activity 的包是正确的。这能澄清事情吗?最好的办法是阅读 the Activity doc. 中对每一项的描述。

关于android - 从android中的包中检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7897098/

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