Android应用程序中的捆绑包是什么?什么时候使用?
当前回答
捆绑包通常用于在各种Android活动之间传递数据。这取决于你想传递什么类型的值,但是包可以保存所有类型的值并将它们传递给新活动。
你可以这样使用它:
Intent intent = new...
Intent(getApplicationContext(), SecondActivity.class);
intent.putExtra("myKey", AnyValue);
startActivity(intent);
你可以通过这样做来获取传递的值:
Bundle extras = intent.getExtras();
String tmp = extras.getString("myKey");
你可以在这里找到更多信息:
android-using-bundle-for-sharing-variables和 Passing-Bundles-Around-Activities
其他回答
Bundle不仅用于在两个不同的组件之间传输数据,更重要的是用于恢复在activity被销毁为新activity之前存储的值。
例如EditText小部件中的文本或ListView的滚动位置。
包: 从String值到各种Parcelable类型的映射。
Bundle通常用于在android的各个活动之间传递数据。
当我们调用onPause(),然后调用onStop(),然后以相反的顺序调用onStop()到onPause()。
系统用来恢复先前状态的保存数据称为“实例状态”,是存储在Bundle对象中的键-值对的集合。
bundle可以用来通过intent将任意数据从一个活动发送到另一个活动。当你广播一个Intent时,感兴趣的activity(和其他broadcastreceivers)会得到通知。一个intent可以包含一个Bundle,这样你就可以发送额外的数据。
bundle是键-值映射,因此在某种程度上它们类似于Hash,但它们并不严格限制于单个String / Foo对象映射。请注意,只有特定的数据类型被认为是“可打包的”,并且它们在Bundle API中被显式地拼写出来。
Bundle用于在活动之间传递数据。你可以创建一个bundle,将它传递给Intent来启动活动,然后可以从目标活动中使用。
通过使用Bundle和Intent对象在活动之间传递数据。
首先创建一个Bundle对象
Bundle b = new Bundle();
然后,将存储在anystring中的字符串数据与bundle key "myname"关联起来
b.putString("myname", anystring);
现在,创建一个Intent对象
Intent in = new Intent(getApplicationContext(), secondActivity.class);
将bundle对象b传递给intent
in.putExtras(b);
开始第二项活动
startActivity(in);
在第二个活动中,我们必须访问从第一个活动传递的数据
Intent in = getIntent();
现在,您需要从包中获取数据
Bundle b = in.getExtras();
最后,获取与名为"myname"的键相关的字符串数据的值
String s = b.getString("myname");
推荐文章
- Manifest合并失败:uses-sdk:minSdkVersion 14
- 为什么Android工作室说“等待调试器”如果我不调试?
- 如何检查我的EditText字段是否为空?
- Android从图库中选择图像
- 后台任务,进度对话框,方向改变-有任何100%工作的解决方案吗?
- Android:垂直对齐多行EditText(文本区域)
- Android无尽列表
- Android room persistent: AppDatabase_Impl不存在
- 错误:执行失败的任务':app:compileDebugKotlin'。>编译错误。详细信息请参见日志
- 在Android中使用URI生成器或使用变量创建URL
- 缩放图像以填充ImageView宽度并保持纵横比
- 列表视图的自定义适配器
- 在Android中设置TextView span的颜色
- 如何以编程方式在RelativeLayout中布局视图?
- Android Facebook集成无效键散列