`

Activity的跳转与传值

 
阅读更多

 

Activity的跳转与传值

以下例子,存在两个Activity文件,MainAcitivity和SelectInputActivity。由MainActivity跳转到SelectInputActivity,并由SelectInputActivity

返回到MainActivity。

 

(1)无返回结果,从一个Activity启动另一个Activity,直接startActivity(intent),以下代码位于MainActivity文件

((Button) findViewById(R.id.myButton)).setOnClickListener( new OnClickListener() {  

    public void onClick(View v) {  

        startActivity(new Intent (MainAppActivity.this, OtherActivity.class) );  

    }  

}); 

 

 

(2)返回数据/结果,可在MainActivity文件使用startActivityForResult (Intent intent, int requestCode),requestCode的值是自定义的,

用于识别跳转的目标Activity。跳转的目标Activity所要做的就是返回数据/结果,setResult(int resultCode)只返回结果不带数据,或者setResult(int resultCode, Intent data)

带数据。在MainActivity文件中覆写接收返回的数据/结果的处理函数onActivityResult(int requestCode, int resultCode, Intent data),这里的requestCode就是startActivityForResult的requestCode,

resultCode就是setResult里面的resultCode,返回的数据在data里面。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

MainActivity文件:

myButton.setOnClickListener(new OnClickListener(){

 

@Override

public void onClick(View v) {

Intent it=new Intent();

it.setClass(MainActivity.this, SelectInputActivity.class);

MainActivity.this.startActivityForResult(it, 0);

}

});

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

//此处需要判断data是否为null,例如用户可能通过按Back键返回到原来的MainActivity (Tip)

if(data!=null){

TextView tv=(TextView)findViewById(R.id.myTextView);

tv.setText(data.getExtras().getString("text"));

}

}

 

SelectInputActivity文件:

myButton.setOnClickListener(new OnClickListener(){

 

@Override

public void onClick(View v) {

Intent it=SelectInputActivity.this.getIntent();

it.putExtra("text", "it is success!");

SelectInputActivity.this.setResult(1, it);

finish(); //一定要调用finish()函数,否则无法返回到原来的MainActivity,就不能调用MainActivity的onActivityResult函数

}

});

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

针对(Tip)处的null问题,另一种更好的处理方案,在SelectInputActivity中监听按键事件并在事件处理函数中做setResult赋值处理,使返回data已被初始化。

 

分享到:
评论

相关推荐

    Android Activity的跳转与传值详解

    Activity跳转与传值,主要是通过Intent类来连接多个Activity,以及传递数据。  Intent是Android一个很重要的类。Intent直译是“意图”,什么是意图呢?比如你想从这个Activity跳转到另外一个Activity,这就是一个...

    android界面跳转与传值

    android界面跳转与传值 android中Activity的跳转和值通过SharedPreferences传递。

    Android-SmartGo通过编译时注解生成文件简化Activity跳转时传值及取值

    "Android-SmartGo"项目正是这样一个实践,它通过编译时注解生成文件,实现了在Activity跳转时自动处理传值和取值,极大地提高了开发效率和代码可读性。 SmartGo的核心思想是利用Java的注解(Annotation)和APT...

    Activity页面跳转传值

    在Android的开发过程中,有时需要进行Activity之间的跳转,在页面跳转的过程中,有时需要传递指定的参数数据过去,例如:信息发布app返回查询条件的需要,为此,就需要了解这方面的技术与实现方式。

    Android Activity跳转和listview的使用

    理解Activity的跳转和ListView的使用是Android开发中至关重要的技能。在这个主题中,我们将深入探讨如何通过Intent和Bundle实现Activity间的参数传递和跳转,以及如何在ListView中设置Item的点击事件处理。 首先,...

    fragment activity与fragment相互传值 fragment与fragment跳转

    本示例主要关注两个核心知识点:Fragment与Activity之间的数据传递,以及Fragment之间的跳转。 首先,我们来探讨Fragment与Activity之间的数据传递。在Android中,有多种方式实现两者间的数据交换: 1. **通过...

    Activity跳转传值

    以上就是关于Activity跳转和传值的基本介绍。在实际项目中,开发者需要根据具体需求选择合适的跳转方式和数据传递方式,以实现灵活且高效的代码设计。理解并熟练掌握这些技巧,对提升Android开发能力至关重要。

    Android开发中Activity创建跳转及传值的方法

    在Android系统的江湖中有四大组件:活动(Activity), 服务(Service), 广播接收器(Broadcast Reciver)和内容提供者(Content Provider)。...本篇博客要介绍的内容是活动的创建,活动的跳转与值的透传。 iOS中的V

    android 跳转与传值

    在创建Intent时,我们可以指定要跳转的Activity的类名,例如: ```java Intent intent = new Intent(this, TargetActivity.class); startActivity(intent); ``` 这里的`this`表示当前上下文,`TargetActivity`...

    界面跳转传值demo

    例如,如果我们想从当前Activity跳转到名为`TargetActivity`的Activity,代码如下: ```java Intent intent = new Intent(this, TargetActivity.class); startActivity(intent); ``` 这里的`this`代表当前...

    TabActivity之间跳转、传值

    3. **跳转**:在`TabActivity`之间进行跳转,通常涉及启动一个新的`Activity`或者改变当前`TabHost`中的内容。启动新`Activity`可以通过调用`startActivityForResult()`或`startActivity()`实现。如果是在同一个`...

    Android页面跳转传值

    本篇文章将详细解析Android页面跳转和传值的过程,以及如何有效地利用`Intent`。 一、页面跳转 在Android中,页面跳转主要通过`Intent`对象实现。`Intent`是用来表示应用中一个操作的意图,它可以用于启动一个新的...

    Kotlin 实现页面互相跳转和互相传值

    要从一个Activity跳转到另一个Activity,我们需要使用`Intent`对象。以下是如何创建并启动新Activity的步骤: 1. 创建Intent对象: ```kotlin val intent = Intent(this, TargetActivity::class.java) ``` 这里的`...

    Android开发 两个Activity之间通过Intent跳转传值

    在Android应用开发中,Intent是连接应用程序组件的重要桥梁,它被用来启动新的Activity或Service,也可以传递数据。本文将深入探讨如何在两个Activity之间通过Intent进行数据传递。 首先,理解Intent的基本概念。...

    android画面跳转及传值实例代码

    ### Android Activity间的跳转与数据传递详解 在Android开发中,Activity之间的跳转以及数据的传递是构建应用程序逻辑的关键部分。以下将详细解析一个具体的示例代码,展示如何实现从`Wh4Activity`跳转至`Activity1...

    Intent跳转传值

    当我们需要从一个Activity跳转到另一个Activity时,Intent扮演着非常重要的角色。在这个过程中,我们可能需要将一些数据从源Activity传递到目标Activity。这就是所谓的"Intent跳转传值"。 Intent主要分为显式Intent...

    Android应用源码之(Activity跳转与操作)-IT计算机-毕业设计.zip

    Activity跳转与操作是Android开发者必须掌握的关键技能,这在给定的“Android应用源码之(Activity跳转与操作)”中得到了深入的演示。这份源码资源对于毕业生进行Android项目的实践学习具有很高的参考价值。 一、...

    Kotlin 实现页面互相跳转和互相传值源代码

    要从一个Activity跳转到另一个Activity,我们需要使用`Intent`对象。以下是如何创建并启动新Activity的步骤: 1. 创建Intent对象: ```kotlin val intent = Intent(this, TargetActivity::class.java) ``` 这里的`...

Global site tag (gtag.js) - Google Analytics