Android开发笔记(2) Android Bundle类实现Activity之间通信
来源:互联网 发布:淘宝卖家写给买家的话 编辑:程序博客网 时间:2024/06/06 02:44
PS:改变文章标题只为更加详细说明功能和排版,以方便日后复习,这篇文章已经写得很详细了
转载地址 http://blog.csdn.net/randyjiawenjie/article/details/6651437
今天发现自己连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>结果:
跳转结果:
1 0
- Android开发笔记(2) Android Bundle类实现Activity之间通信
- Android Bundle类---activity之间通信
- Android Bundle类(实现两个activity之间的通讯)
- Android实现Activity之间通信的方法
- Android Activity之间通信
- android:cha1.2 通过Intent实现Activity之间的通信
- 2014-10-25Android学习--------activity之间批量传递数据----Bundle类的实现
- 【Android 应用开发】Activity生命周期 与 Activity 之间的通信
- Android activity 之间的数据传递 bundle
- android Activity之间递 bundle对象传递
- Intent、Bundle——实现Activity之间的通信
- Bundle类实现两个Activity之间通讯
- Android中Activity之间通信
- Android 两个activity之间通信
- Android中Activity之间通信
- Android中Activity之间通信
- Android学习笔记(三)Activity之间的通信
- Android官方Training笔记:Fragment之间通过Activity通信
- 二叉树的非递归遍历
- objective-c NSData和NSString,char*之间的转换
- Hibernate 数据库方言
- EhCache RMI方式分布式缓存解决方案
- 初识c++ 中类的使用
- Android开发笔记(2) Android Bundle类实现Activity之间通信
- Fox Observation
- JAVA Annotation
- UVA439
- ACM练习建议
- HDU4861 Couple doubi 【找规律】
- 顺序线性表的定义与基本操作
- STM32F103移植Raw-OS
- poj 2914 Minimum Cut 求无向图的最小割 Stoer-Wagner算法模板