什么是Android应用程序中的bundle
?何时使用它?什么是Android应用程序中的“包”
回答
Bundles通常用于在各种Android活动之间传递数据。它取决于你想要传递什么类型的值,但bundle可以保存所有类型的值并将它们传递给新的活动。
您可以使用它像这样:
Intent intent = new...
Intent(getApplicationContext(), SecondActivity.class);
intent.putExtra("myKey", AnyValue);
startActivity(intent);
您可以通过执行获得传递的值:
Bundle extras = intent.getExtras();
String tmp = extras.getString("myKey");
你可以找到更多的信息:
Bundle用于在活动之间传递数据。您可以创建一个捆绑包,将其传递给Intent,以启动可从目标活动使用的活动。
Bundles可以用于通过Intents将任意数据从一个活动发送到另一个活动。当您广播一个意图时,感兴趣的活动(和其他BroadcastRecievers)将被通知。一个意图可以包含一个Bundle,以便您可以发送额外的数据以及Intent。
Bundle是键值映射,所以它们就像一个Hash,但它们并不严格局限于单个String/Foo对象映射。请注意,只有某些数据类型被视为“Parcelable”,并且它们在Bundle API中明确拼写出来。
这是迄今为止真正解决OP问题的唯一答案,即什么是捆绑。 http://stackoverflow.com/a/6236801/1588163提供更多见解。 – clapas 2014-10-03 10:55:05
为什么要使用一个包,如果我们只能使用映射?谢谢! – 2016-01-28 01:37:32
@RuchirBaronia没有什么特别的理由要使用Bundle,除非你打算把它传递给需要Bundle对象的Android API的一部分。 – scriptocalypse 2016-01-28 01:46:43
A Bundle
非常类似于将String
键映射到值的Java对象Map
。它用于在活动和其他应用程序组件之间传递信息。它也被框架用来捕获和恢复状态信息。
Android不使用普通旧Map
对象的原因是Map
太灵活;它可以包含无法序列化的对象(比如说,I/O流)。 Bundle
API限制了可以添加到捆绑包的对象的类型,使捆绑的内容保证可序列化。 Android框架依赖于这个属性。
我建议您阅读关于Application Fundamentals的文档。除此之外,这解释了捆绑和意图是什么以及它们用于什么。
为什么使用一个包,如果我们只能使用映射?谢谢泰德! – 2016-01-28 01:37:25
我要补充的是束通过活动用于将数据传递给自己的未来。
当屏幕旋转或者其他活动启动时,方法protected void onSaveInstanceState(Bundle outState)
被调用,并且活动被破坏。稍后,创建另一个活动实例,并调用public void onCreate(Bundle savedInstanceState)
。当创建第一个活动实例时,该包为空;如果该捆绑包不为空,该活动继续其前任开始的一些业务。
Android会自动将文本保存在文本字段中,但它不会保存所有内容,并且有时会出现细微的错误。
虽然最常见的反模式是假设onCreate()
只是初始化。这是错误的,因为它也必须恢复状态。
有一个选项可禁用此“重新创建循环活动”行为,但它不会阻止与重新启动相关的错误,它只会使其更难以提及。
还要注意,当活动将被销毁时保证其呼叫的唯一方法是onPause()
。 (请参阅文档中的活动生命周期图。)
通过使用Bundle
和Intent
对象在活动之间传递数据。
你首先要创建一个Bundle
对象
Bundle b = new Bundle();
然后,存储在anystring
字符串数据与束键"myname"
b.putString("myname", anystring);
现在联系起来,创建一个Intent
对象
Intent in = new Intent(getApplicationContext(), secondActivity.class);
通行证捆绑对象b
的意图
in.putExtras(b);
,并开始第二活动
startActivity(in);
在第二个活动,我们要访问从第一个活动传递的数据
Intent in = getIntent();
现在,你需要从包中获取数据
Bundle b = in.getExtras();
最后得到一个名为"myname"
String s = b.getString("myname");
键关联的字符串数据包来共享活动之间的数据值, 和保存状态的应用程序在oncreate()方法,以便应用程序会知道它停止在哪里... 我希望它可以帮助:)
只需创建一个包,
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);
使用捆绑包通过intent对象将数据从一个活动发送到另一个活动; Bundle保存可以是任何类型的数据。
现在我告诉如何在两个活动之间创建数据包传递数据。
步骤1:在第一项活动
Bundle b=new Bundle();
b.putString("mkv",anystring);
Intent in=new Intent(getApplicationContext(),secondActivity.class);
in.putExtras(b);
startActivity(in);
步骤2:在第二个活动
Intent in=getIntent();
Bundle b=in.getExtras();
String s=b.getString("mkv");
我认为这是对您有用...........
Bundle不仅用于在两个不同组件之间传输数据,更重要的是它用于将活动被破坏之前存储的值恢复到新活动中。
如EditText
小部件中的文本或ListView
的滚动位置。
Bundle: - 从String值到各种Parcelable类型的映射。
Bundle通常用于在android的各种活动之间传递数据。当我们调用onPause()然后onStop(),然后以相反的顺序onStop()到onPause()时,我们会调用这个方法来调用这个方法。
系统用于恢复先前状态的已保存数据称为“实例状态”,是存储在Bundle对象中的键值对的集合。
第一项活动:
String food = (String)((Spinner)findViewById(R.id.food)).getSelectedItem();
RadioButton rb = (RadioButton) findViewById(R.id.rb);
Intent i = new Intent(this,secondActivity.class);
i.putExtra("food",food);
i.putExtra("rb",rb.isChecked());
次活动:
String food = getIntent().getExtras().getString("food");
Boolean rb = getIntent().getExtras().getBoolean("rb");
- 1. 在android中我的应用程序包名称是什么?
- 2. 什么是Android应用程序框架的基本Java包?
- 3. 什么是“关注”android应用程序?
- 4. Chrome应用程序开发环境中的打包应用程序是什么?
- 5. Android应用程序的“./META-INF/CERT.RSA”文件中包含什么?
- 6. 什么是Django中的“应用程序”?
- 7. 什么是salesforce中的应用程序
- 8. Facebook应用程序中的应用程序域名是什么?
- 9. 什么是Android应用程序中使用的android.permission.SET_PROCESS_LIMIT?
- 10. 在Android应用程序中,“R.java”的作用是什么?
- 11. Android中的包是什么?
- 12. 什么是在科尔多瓦Android应用程序中使用com.squareup.okhttp包
- 13. android应用程序应该包含什么来获取Flurry Analytics?
- 14. Android应用程序中的布局充气器是什么?
- 15. Android应用程序中UnknownHostException的原因是什么?
- 16. Android版Mono中的[应用程序]是什么?
- 17. 在Android Market中托管应用的程序是什么?
- 18. 什么是更快的WebService用于我的Android应用程序?
- 19. 什么是Django“应用程序”应该是什么意思?
- 20. 什么是包含文件到Android应用程序的正确方法?
- 21. 是什么导致我的应用程序在此程序中崩溃? - Android Studio
- 22. uwp应用程序推荐的sqlite nuget包是什么?
- 23. 什么是打包企业应用程序的正确方法
- 24. 股票短信应用程序的包名称是什么?
- 25. getDefaultSharedPreferences() - 多包应用程序的上下文是什么?
- 26. 什么是包装Django应用程序的好方法?
- 27. Windows Phone应用程序包所需的文件是什么?
- 28. 移动应用程序的最佳SQL Azure包是什么?
- 29. 什么是自包含的移动应用程序?
- 30. 什么是开发黑莓应用程序的好工具包?
Gsree感谢,,什么是意图 – User 2011-02-15 04:57:47
的作用,它也使用了一个活动来保存和检索它的状态,当它被关闭并重新启动(例如设备旋转时)。 – 2011-02-15 04:58:36
@Tushar查看@Ted Hopp的回复链接。这将解释更多关于意图和活动。 – GSree 2011-02-16 00:29:08