`

使用Bundle在Activity间传递数据

 
阅读更多

源Activity

public class SourceActivty extends Activity {
private Intent intent=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
intent=new Intent();
Bundle myBundelForName=new Bundle();
myBundelForName.putString("Key_Name","1111");
myBundelForName.putString("Key_Age","22");
intent.putExtras(myBundelForName);
TextView text=(TextView)findViewById(R.id.test);
text.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
intent.setClass(SourceActivty.this, TargetActivty.class);
startActivity(intent);


}
});
}

}

目标activty

public class TargetActivty extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.intest);
TextView text=(TextView)findViewById(R.id.tt);
//从Intent 中获取数据
Bundle myBundelForGetName=this.getIntent().getExtras();
String name=myBundelForGetName.getString("Key_Name");
text.setText("欢迎您进入:"+name);
}
}

从源请求Activity 中通过一个Intent 把一个服务请求传到目标Activity

源activty

private Intent openWelcomeActivityIntent = null;
TextView text=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
openWelcomeActivityIntent = new Intent();
// 设定开启的下一个Activity
text=(TextView)findViewById(R.id.test);
text.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
openWelcomeActivityIntent.setClass(SourceActivty1.this,
TargetActivty1.class);
startActivityForResult(openWelcomeActivityIntent, 1);

}
});

}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1) {
if (resultCode == RESULT_CANCELED) {
setTitle("Cancel****");
} else if (resultCode == RESULT_OK) {
Bundle showBundle = data.getExtras();// 从返回的Intent中获得Bundle
text.setText("the name get from the second layout:\n" + showBundle.getString("myName"));
}
}
}
}



☻ 第一个参数是你开启请求Intent时的对应请求码,可以自己定义。
☻ 第二个参数是目标Activity返回的验证结果码
☻ 第三个参数是目标Activity返回的Intent

目标activty


public class TargetActivty1 extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.intest);
Intent backIntent=new Intent();
Bundle stringBundle=new Bundle();
stringBundle.putString("myName", "lishiyao");
backIntent.putExtras(stringBundle);
setResult(RESULT_OK, backIntent);//返回Activity结果码
finish();
}

}




分享到:
评论

相关推荐

    android bundle和activity之间交换数据

    在`BundleTest`项目中,可能包含了一些示例代码,演示了如何在Activity间使用Bundle交换数据。通过查看和运行这个项目,你可以更深入地了解这些概念,并学习实际应用场景。 总之,理解和熟练掌握Bundle与Activity...

    Fragment与Activity使用Bundle传递数据

    4. **注意生命周期**:在使用Bundle传递数据时,需要注意Activity和Fragment的生命周期。当Activity或Fragment被销毁后,它们保存的Bundle数据可能会丢失。因此,对于跨Activity的数据传递,一般推荐使用Parcelable...

    Android-Activity之间数据传递的多种方式

    Intent是Android系统中用于启动组件(如Activity)的一种消息对象,同时也可以用来在组件间传递数据。Intent的数据传递有两种类型:显式和隐式。 1. 显式Intent:通过指定目标Activity的类名,可以精确地启动某个...

    安卓activity间的数据传递

    首先,Activity间的通信是Android应用设计的重要部分,这涉及到启动一个新Activity、在Intent中携带数据以及使用Bundle来保存和恢复数据。Intent是Android系统中启动组件(如Activity)的载体,而Bundle则可以看作...

    activity与activity利用接口相互传递数据

    当我们需要在两个Activity之间传递数据时,通常有多种方法,如Intent、Bundle、静态变量、文件、数据库等。本教程将聚焦于一种更为灵活的方式:通过接口进行数据传递。这种方式在某些复杂场景下特别有用,例如当数据...

    在不同Activity之间传递数据的四种常用方法

    在Android中传递数据的方法非常多,本次介绍4中比较常用的数据传递方法: 1.通过Intent传递数据 2.通过静态变量(static)传递数据 3.通过剪贴板(Clipboard)传递数据 4.通过全局对象传递数据 在...

    两个Activity之间传递参数的代码

    Intent是Android中用来启动Activity或Service的类,也可以用于在Activity间传递数据。对于简单的数据类型(如字符串、整型、浮点型、布尔型等),我们可以在创建Intent时直接附加数据。 例如,在`LoginActivity....

    android activity bundle 通信示例

    Bundle则是一个用来存储键值对的数据结构,常用于Activity之间传递数据。本示例将深入探讨如何在Android活动中利用Bundle进行通信。 首先,理解Activity的基本概念至关重要。Activity是Android系统中的窗口,它负责...

    Android例子源码Activity间的数据传递

    这个"Android例子源码Activity间的数据传递"着重展示了如何在不同的Activity之间有效地传递数据。以下是关于这个主题的详细解释: 1. **Intent**: Intent是Android中用于启动其他组件(如Activity、Service)或传递...

    activity间的数据传递Demo

    "activity间的数据传递Demo"就是一种常见的实践,它主要涉及的是Intent的使用,Intent是Android系统中用于启动组件(如Activity、Service等)并传递数据的重要工具。在本教程中,我们将深入探讨如何在不同的Activity...

    Fragment与Activity传递数据

    4. **调用接口方法**:在需要传递数据的时机,Fragment调用接口中的方法,将数据作为参数传递给Activity。 例如: ```java public interface OnDataPassListener { void onDataPass(String data); } public class...

    实验七 使用Intent在Activity间传输数据

    在Android应用开发中,Intent是连接应用程序组件的...熟练运用Intent在Activity间传递数据,将极大地提升应用程序的交互性和用户体验。同时,理解Intent的显式与隐式使用方式,有助于设计更灵活、可扩展的应用架构。

    Activity传递数据到另一个Activity并显示

    本教程将详细讲解如何在`Activity`之间传递数据,包括使用`Intent`和`Bundle`来实现实现简单功能,这对于初学者来说非常实用。 ### 1. `Intent`的使用 `Intent`是安卓系统中的一个核心组件,它用于表示应用程序中...

    Activity之间传递数据

    "Activity之间传递数据"这一主题,主要涉及如何使用Intent对象在不同的Activity之间传递各种类型的数据,包括基本数据类型、字符串、数组、集合以及自定义对象等。在Android中,Intent不仅用于启动新的Activity,还...

    利用广播Broadcast Receiver,在2个不同的Activity传递数据

    总结,BroadcastReceiver是Android系统中实现组件间通信的重要工具,特别适用于在Activity之间传递数据。通过创建BroadcastReceiver,注册它,发送Broadcast,以及在接收端处理数据,我们可以轻松地在两个不同的...

    Android开发教程

    ### Android开发教程:使用Bundle在Activity间传递数据 #### Android编程基础 本教程旨在为初学者提供关于Android应用开发的基础知识。特别地,本节将详细介绍如何利用`Bundle`对象来实现在不同的`Activity`之间...

    Fragment 与 Activity之间传递数据

    通过setArguments方法,我们可以方便地在创建Fragment时传递数据,使得组件间的协同工作变得更加灵活和高效。在实际项目中,应根据具体需求选择最适合的通信方式,以保证代码的可维护性和性能。

    Android编程之Bundle及Server、布局等教程 PDF

    内容:使用Bundle在Activity间传递数据、Log与DDMS(查看Log等信息)、Activity生命周期、Android应用开发4使用Service、如何使用服务、服务生命周期、进程生命周期、使用服务进行音乐播放、AndroidUI布局等……

    新版android开发教程

    #### 三、使用Bundle在Activity间传递数据 **Bundle**是Android开发中用于封装可序列化对象的一个容器类,主要用于在Activity之间传递数据。以下是一些关键知识点: 1. **从源Activity中传递数据** - 创建一个...

    Android Activity间共享数据

    // 在启动新Activity时通过Intent的Bundle传递数据 Intent intent = new Intent(this, TargetActivity.class); Bundle bundle = new Bundle(); bundle.putString("key", "value"); intent.putExtra("bundleKey", ...

Global site tag (gtag.js) - Google Analytics