Android Bundle类 学习

本文详细介绍了如何利用AndroidBundle类在不同Activity之间传递数据,包括创建Bundle对象、添加数据、设置Intent并启动目标Activity的过程。通过实例代码展示了如何在Android应用中实现数据共享,便于开发者理解和应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android Bundle类 .
根据google官方的文档(http://developer.android.com/reference/android/os/Bundle.html

Bundle类是一个key-value对,“A mapping from String values to various Parcelable types.

类继承关系:

java.lang.Object
     android.os.Bundle

Bundle类是一个final类:
public final class
Bundle
extends Objectimplements Parcelable Cloneable

两个activity之间的通讯可以通过bundle类来实现,做法就是:

(1)新建一个bundle类

  1. Bundle mBundle = new Bundle();   
Bundle mBundle = new Bundle(); (2)bundle类中加入数据(key -value的形式,另一个activity里面取数据的时候,就要用到key,找出对应的value)

  1. mBundle.putString("Data""data from TestBundle");  
mBundle.putString("Data", "data from TestBundle");
(3)新建一个intent对象,并将该bundle加入这个intent对象

  1. Intent intent = new Intent();    
  2. intent.setClass(TestBundle.this, Target.class);    
  3. intent.putExtras(mBundle);  
    Intent intent = new Intent(); intent.setClass(TestBundle.this, Target.class); intent.putExtras(mBundle);完整代码如下:

    android mainfest.xml如下:

    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
    3.       package="com.tencent.test"  
    4.       android:versionCode="1"  
    5.       android:versionName="1.0">  
    6.     <application android:icon="@drawable/icon" android:label="@string/app_name">  
    7.         <activity android:name=".TestBundle"  
    8.                   android:label="@string/app_name">  
    9.             <intent-filter>  
    10.                 <action android:name="android.intent.action.MAIN" />  
    11.                 <category android:name="android.intent.category.LAUNCHER" />  
    12.             </intent-filter>  
    13.         </activity>  
    14.     <activity android:name=".Target"></activity>  
    15.     </application>  
    16.     <uses-sdk android:minSdkVersion="7" />  
    17. </manifest>   
    <?xml version="1.0" encoding="utf-8"?><manifest xmlns:android=" http://schemas.android.com/apk/res/android" package="com.tencent.test" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".TestBundle" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".Target"></activity> </application> <uses-sdk android:minSdkVersion="7" /></manifest>
    两个类如下:intent从TestBundle类发起,到Target类。

    类1:TestBundle类:

    1. import android.app.Activity;    
    2. import android.content.Intent;    
    3. import android.os.Bundle;    
    4. import android.view.View;  
    5. import android.view.View.OnClickListener;  
    6. import android.widget.Button;  
    7.   
    8. public class TestBundle extends Activity {    
    9.       
    10.     private Button button1;  
    11.     private OnClickListener cl;   
    12.     public void onCreate(Bundle savedInstanceState) {    
    13.         super.onCreate(savedInstanceState);    
    14.         setContentView(R.layout.main);  
    15.           
    16.         button1 = (Button) findViewById(R.id.button1);  
    17.         cl = new OnClickListener(){  
    18.             @Override  
    19.             public void onClick(View arg0) {  
    20.                 // TODO Auto-generated method stub   
    21.                 Intent intent = new Intent();    
    22.                 intent.setClass(TestBundle.this, Target.class);    
    23.                 Bundle mBundle = new Bundle();    
    24.                 mBundle.putString("Data""data from TestBundle");//压入数据     
    25.                 intent.putExtras(mBundle);    
    26.                 startActivity(intent);  
    27.             }  
    28.         };  
    29.         button1.setOnClickListener(cl);  
    30.     }  
    31. }    
    import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class TestBundle extends Activity { private Button button1; private OnClickListener cl; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); button1 = (Button) findViewById(R.id.button1); cl = new OnClickListener(){ @Override public void onClick(View arg0) { // TODO Auto-generated method stub Intent intent = new Intent(); intent.setClass(TestBundle.this, Target.class); Bundle mBundle = new Bundle(); mBundle.putString("Data", "data from TestBundle");//压入数据 intent.putExtras(mBundle); startActivity(intent); } }; button1.setOnClickListener(cl); }}
    类2: Target

    1. import android.app.Activity;    
    2. import android.os.Bundle;    
    3.   
    4. public class Target extends Activity{    
    5.   
    6.     public void onCreate(Bundle savedInstanceState) {    
    7.           
    8.         super.onCreate(savedInstanceState);    
    9.         setContentView(R.layout.target);    
    10.         <SPAN style="COLOR: #ff6600">Bundle bundle = getIntent().getExtras();   </SPAN> //得到传过来的bundle   
    11.         String data = bundle.getString("Data");//读出数据     
    12.         setTitle(data);    
    13.   
    14.     }    
    15. }    
    import android.app.Activity; import android.os.Bundle; public class Target extends Activity{ public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.target); Bundle bundle = getIntent().getExtras(); //得到传过来的bundle String data = bundle.getString("Data");//读出数据 setTitle(data); } }
    布局文件:

    main.xml

    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    3.     android:orientation="vertical"  
    4.     android:layout_width="fill_parent"  
    5.     android:layout_height="fill_parent"  
    6.     >  
    7. <TextView    
    8.     android:layout_width="fill_parent"   
    9.     android:layout_height="wrap_content"   
    10.     android:text="@string/hello"  
    11.     />  
    12. <Button    
    13.     android:layout_width="fill_parent"   
    14.     android:layout_height="wrap_content"   
    15.     android:text="@string/button"  
    16.     android:id = "@+id/button1"  
    17.     />   
    18. </LinearLayout>  
    <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=" http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" ><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /><Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/button" android:id = "@+id/button1" /> </LinearLayout>


    target.xml
    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    3.     android:orientation="vertical"  
    4.     android:layout_width="fill_parent"  
    5.     android:layout_height="fill_parent"  
    6.     >  
    7. <TextView    
    8.     android:layout_width="fill_parent"   
    9.     android:layout_height="wrap_content"   
    10.     android:text="@string/target"  
    11.     />  
    12. </LinearLayout>  
    <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=" http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" ><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/target" /></LinearLayout>

    String.xml

    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <resources>  
    3.     <string name="hello">Hello World, TestBundle!</string>  
    4.     <string name="app_name">测试Bundle用法</string>  
    5.     <string name="button">点击跳转</string>  
    6.     <string name="target">来到target activity</string>  
    7. </resources>  
    <?xml version="1.0" encoding="utf-8"?><resources> <string name="hello">Hello World, TestBundle!</string> <string name="app_name">测试Bundle用法</string> <string name="button">点击跳转</string> <string name="target">来到target activity</string></resources>
    结果:


    跳转结果:



    内容概要:本文详细介绍了扫描单分子定位显微镜(scanSMLM)技术及其在三维超分辨体积成像中的应用。scanSMLM通过电调透镜(ETL)实现快速轴向扫描,结合4f检测系统将不同焦平面的荧光信号聚焦到固定成像面,从而实现快速、大视场的三维超分辨成像。文章不仅涵盖了系统硬件的设计与实现,还提供了详细的软件代码实现,包括ETL控制、3D样本模拟、体积扫描、单分子定位、3D重建和分子聚分析等功能。此外,文章还比较了循环扫描与常规扫描模式,展示了前者在光漂白效应上的优势,并通过荧光珠校准、肌动蛋白丝、线粒体网络和流感A病毒血凝素(HA)蛋白聚的三维成像实验,验证了系统的性能和应用潜力。最后,文章深入探讨了HA蛋白聚与病毒感染的关系,模拟了24小时内HA聚的动态变化,提供了从分子到细胞尺度的多尺度分析能力。 适合人群:具备生物学、物理学或工程学背景,对超分辨显微成像技术感兴趣的科研人员,尤其是从事细胞生物学、病毒学或光学成像研究的科学家和技术人员。 使用场景及目标:①理解和掌握scanSMLM技术的工作原理及其在三维超分辨成像中的应用;②学习如何通过Python代码实现完整的scanSMLM系统,包括硬件控制、图像采集、3D重建和数据分析;③应用于单分子水平研究细胞内结构和动态过程,如病毒入侵机制、蛋白质聚等。 其他说明:本文提供的代码不仅实现了scanSMLM系统的完整工作流程,还涵盖了多种超分辨成像技术的模拟和比较,如STED、GSDIM等。此外,文章还强调了系统在硬件改动小、成像速度快等方面的优势,为研究人员提供了从理论到实践的全面指导。
    内容概要:本文详细介绍了基于Seggiani提出的渣层计算模型,针对Prenflo气流床气化炉中炉渣的积累和流动进行了模拟。模型不仅集成了三维代码以提供气化炉内部的温度和浓度分布,还探讨了操作条件变化对炉渣行为的影响。文章通过Python代码实现了模型的核心功能,包括炉渣粘度模型、流动速率计算、厚度更新、与三维模型的集成以及可视化展示。此外,还扩展了模型以考虑炉渣组成对特性的影响,并引入了Bingham流体模型,更精确地描述了含未溶解颗粒的熔渣流动。最后,通过实例展示了氧气-蒸汽流量增加2%时的动态响应,分析了温度、流动特性和渣层分布的变化。 适合人群:从事煤气化技术研究的专业人士、化工过程模拟工程师、以及对工业气化炉操作优化感兴趣的科研人员。 使用场景及目标:①评估不同操作条件下气化炉内炉渣的行为变化;②预测并优化气化炉的操作参数(如温度、氧煤比等),以防止炉渣堵塞;③为工业气化炉的设计和操作提供理论支持和技术指导。 其他说明:该模型的实现基于理论公式和经验数据,为确保模型准确性,实际应用中需要根据具体气化炉的数据进行参数校准。模型还考虑了多个物理场的耦合,包括质量、动量和能量守恒方程,能够模拟不同操作条件下的渣层演变。此外,提供了稳态求解器和动态模拟工具,可用于扰动测试和工业应用案例分析。
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值