首页 > 编程知识 正文

安卓bundle是什么文件,android bundle机制

时间:2023-05-06 17:40:32 阅读:226901 作者:1260

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类

[java]  view plain  copy Bundle mBundle = new Bundle();    (2)bundle类中加入数据(key -value的形式,另一个activity里面取数据的时候,就要用到key,找出对应的value) [java]  view plain  copy mBundle.putString("Data", "data from TestBundle");   (3)新建一个intent对象,并将该bundle加入这个intent对象 [cpp]  view plain  copy Intent intent = new Intent();     intent.setClass(TestBundle.this, Target.class);     intent.putExtras(mBundle);   两个类如下:intent从TestBundle类发起,到Target类。

类1:TestBundle类:

[java]  view plain  copy 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

[java]  view plain  copy 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);             <span style="color:#ff6600;">         Bundle bundle = getIntent().getExtras();            </span> //得到传过来的bundle           String data = bundle.getString("Data");//读出数据             setTitle(data);            }     }    

概况为以下几步:
1、实例化Bundle 一个对象,用putString(标记,数据)来将数据导入到Bundle对象中;   2、然后将Bundle对象导入到Intent对象中; 3、Intent启动另一个activity。 4、Bundle对象可以从activity.getIntent().getExtras()中返回。可见,启动当前activity        的Intent对象是由getIntent()来找到的。 5、通过Bundle的getString()方法,就可以读出所要的数据。





版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。