Android应用程序中的捆绑包是什么?什么时候使用?
当前回答
只需要创建一个bundle,
Bundle simple_bundle=new Bundle();
simple_bundle.putString("item1","value1");
Intent i=new Intent(getApplicationContext(),this_is_the_next_class.class);
i.putExtras(simple_bundle);
startActivity(i);
在"this_is_the_next_class.class"
您可以像这样检索项目。
Intent receive_i=getIntent();
Bundle my_bundle_received=receive_i.getExtras();
my_bundle_received.get("item1");
Log.d("Value","--"+my_bundle_received.get("item1").toString);
其他回答
我必须补充的是,bundle被活动用来在将来将数据传递给自己。
当屏幕旋转时,或者当另一个活动启动时,方法protected void onSaveInstanceState(Bundle outState)被调用,并且活动被销毁。稍后,创建该活动的另一个实例,并调用公共void onCreate(Bundle savedInstanceState)。当activity的第一个实例被创建时,bundle是空的;如果bundle不为空,活动将继续由它的前任开始的一些业务。
Android会自动将文本保存在文本框中,但它不会保存所有内容,有时会出现一些微妙的错误。
不过,最常见的反模式是假设onCreate()只进行初始化。这是错误的,因为它也必须恢复国家。
有一个选项可以禁用这种“在旋转时重新创建活动”的行为,但它不能防止与重启相关的错误,只会使它们更难被提及。
还要注意,当activity将要被销毁时,唯一保证调用的方法是onPause()。(请参阅文档中的活动生命周期图。)
Bundle不仅用于在两个不同的组件之间传输数据,更重要的是用于恢复在activity被销毁为新activity之前存储的值。
例如EditText小部件中的文本或ListView的滚动位置。
Bundle用于在活动之间共享数据, 在oncreate()方法中保存应用程序的状态,这样应用程序就会知道它在哪里停止了… 我希望它能帮助你:)
包: 从String值到各种Parcelable类型的映射。
Bundle通常用于在android的各个活动之间传递数据。
当我们调用onPause(),然后调用onStop(),然后以相反的顺序调用onStop()到onPause()。
系统用来恢复先前状态的保存数据称为“实例状态”,是存储在Bundle对象中的键-值对的集合。
使用bundle在intent对象的帮助下将数据从一个活动发送到另一个活动; 捆绑包保存可以是任何类型的数据。
现在我告诉它如何创建在两个活动之间传递数据的bundle。
第一步:第一个活动
Bundle b=new Bundle();
b.putString("mkv",anystring);
Intent in=new Intent(getApplicationContext(),secondActivity.class);
in.putExtras(b);
startActivity(in);
第二步:第二项活动
Intent in=getIntent();
Bundle b=in.getExtras();
String s=b.getString("mkv");
我认为这对你很有用...........
推荐文章
- 改变开关的“开”色
- 以编程方式将EditText的输入类型从PASSWORD更改为NORMAL,反之亦然
- 如何在隐藏和查看密码之间切换
- 在Android上调整一个大的位图文件到缩放输出文件
- 如何更改Android版本和代码版本号?
- Android Studio突然无法解析符号
- 应用程序重新启动而不是恢复
- 如何设置整个应用程序在纵向模式?
- Android中文本的阴影效果?
- 以编程方式设置TextView的布局权重
- Android -如何覆盖“后退”按钮,所以它不完成()我的活动?
- 如何从通知点击发送参数到一个活动?
- 导航目标xxx对于这个NavController是未知的
- 使用ConstraintLayout均匀间距的视图
- 文件google-services错误。模块根文件夹中缺少Json。谷歌服务插件没有它就不能正常工作。