Android Bundle类 简单的交互

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);  
        <span style="color:#ff6600;">Bundle bundle = getIntent().getExtras();   </span> //得到传过来的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>

结果:


跳转结果:


感觉很适合初学者,给原创点个赞,学习了。

转自:

http://blog.csdn.net/randyjiawenjie/article/details/6651437


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android AMS(Activity Manager Service)和WMS(Window Manager Service)是两个核心系统服务,它们之间的交互主要通过Binder IPC(Inter-Process Communication)实现。以下是一些与AMS和WMS交互的函数和: 1. ActivityManagerService:这是AMS的实现,提供了许多与Activity和Activity生命周期相关的函数。其中一些函数包括: - startActivity(Intent intent, Bundle options):启动一个Activity。 - resumeAppSwitches():通知AMS恢复应用程序切换。 - moveTaskToFront(int taskId, int flags, Bundle options):将指定的任务移动到前台并重新启动它。 2. WindowManagerService:这是WMS的实现,提供了许多与窗口管理相关的函数。其中一些函数包括: - addView(View view, WindowManager.LayoutParams params):向窗口管理器添加一个视图。 - removeView(View view):从窗口管理器中移除一个视图。 - performLayout():执行窗口的布局操作。 3. ActivityManagerNative:这是AMS的远程代理,用于实现AMS的远程调用。其中一些函数包括: - getDefault():获取AMS的远程代理实例。 - startService(IApplicationThread caller, Intent service, String resolvedType, int userId):启动一个服务。 4. WindowManagerGlobal:这是WMS的全局,提供了全局访问WMS的接口。其中一些函数包括: - getWindowManagerService():获取当前进程中的WMS实例。 - addView(View view, WindowManager.LayoutParams params, Display display, Window parentWindow):向指定的显示器和窗口添加视图。 这些函数和是与AMS和WMS交互的一些基本元素,用于管理应用程序的生命周期和窗口显示。开发人员可以使用它们来创建和管理Android应用程序的界面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值