• Android Bundle类别


    即使在今天发现自己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类

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

    mBundle.putString("Data", "data from TestBundle");

    (3)新建一个intent对象,并将该bundle增加这个intent对象

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

    android mainfest.xml例如以下:

    <?

    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类:

    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

    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

    <?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
    <?

    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

    <?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>
    

    结果:


    跳转结果:



  • 相关阅读:
    Unity3D串口处理
    Crixalis's Equipment 杭电 (设计贪心算法,比较巧妙,我用的是结构体排序)
    杭电 看归并排序和快速排序
    杭电acm 排名 (涉及到结构体排序)
    程序在计算机的内存(看到了一篇博客,解决了我的疑惑)
    贪心算法and排序 杭电一题的启发
    辗转相除法 杭电acm
    单调队列
    用栈的思想处理字符串倒置问题更清晰
    VS的哪些事儿之二
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4595596.html
Copyright © 2020-2023  润新知