Activity之间的跳转和数据传输

1.显式跳转

protected void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);        setContentView(R.layout.activity_a);        bt1= (Button) findViewById(R.id.btn_jumptoB);        bt1.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {//                显式                Intent intent=new Intent(AActivity.this,BActivity.class);//                Intent intent=new Intent();                intent.setAction("sankuai.com");                Bundle bundle=new Bundle();                bundle.putString("name","lijing");                intent.putExtras(bundle);                startActivityForResult(intent,10086);            }        });

}

2.隐式跳转

protected void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);        setContentView(R.layout.activity_a);        bt1= (Button) findViewById(R.id.btn_jumptoB);        bt1.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {//                显式//                Intent intent=new Intent(AActivity.this,BActivity.class);//                隐式                Intent intent=new Intent();                intent.setAction("sankuai.com");                Bundle bundle=new Bundle();                bundle.putString("name","lijing");                intent.putExtras(bundle);                startActivityForResult(intent,10086);            }        });    }

Manifest文件中针对目标activity
<activity android:name=".jump.BActivity"    android:label="B">    <intent-filter>        <action android:name="sankuai.com" />        <category android:name="android.intent.category.DEFAULT" />    </intent-filter></activity>

3.把数据传递到目标activity发:
protected void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);    setContentView(R.layout.activity_a);    bt1= (Button) findViewById(R.id.btn_jumptoB);    bt1.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View view) {            Intent intent=new Intent(AActivity.this,BActivity.class);            Bundle bundle=new Bundle();            bundle.putString("name","lijing");            intent.putExtras(bundle);            startActivityForResult(intent,10086);        }    });

}
收:
在目标activityz中String name=getIntent().getStringExtra("name");

4.返回数据给上一个活动
public void onClick(View view) {    Intent intent=new Intent(AActivity.this,BActivity.class);    Bundle bundle=new Bundle();    bundle.putString("name","lijing");    intent.putExtras(bundle);    startActivityForResult(intent,10086);--10086是requestcode}在目标activity中
buttonxx.setOnClickListener(new View.OnClickListener() {    @Override    public void onClick(View view) {        Intent intent=new Intent();        intent.putExtra("visitor","999999");        setResult(RESULT_OK,intent);--RESULT_OK是resultcode

    finish();
    }});
在BActivity被finish()销毁以后,AActivity会调用
onActivityResult方法,所以需要重写这个方法来接收来自B的传递数据
@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {    switch (requestCode){        case 10086:            if (resultCode==RESULT_OK){                String result=data.getStringExtra("visitor");                Log.d("visitor",result);            }            break;    }

总结:
startActivity只能传递给目标activity数据
startActivityForResult:既能传递数据,也能从另一个activity中回调数据给自己,如果两种都需要,可以直接使用
startActivityForResult。


原文地址:https://www.cnblogs.com/AppTester/p/9941742.html

时间: 2024-10-13 04:59:52

Activity之间的跳转和数据传输的相关文章

Android activity之间的跳转和数据传递

1.Activity之间的跳转 并且 传递数据 A Activity进行的操作 Intent intent = new Intent(context, B.class); intent.putExtra("tn",tn); intent.putExtra("payMode",payMode); context.startActivity(intent); B activity接收数据 protected void onCreate(Bundle savedInsta

实现android activity之间的跳转

android程序一般不会只有一个activity,会碰到activity之间的跳转.以下是使用Intent做应用程序内部的activity做跳转.比如,应用程序第一个activity是: 点击“下一步”按钮后: 这需要写两个Activity类.第一个是:MainActivity 1 package com.easymorse; 2 3 import android.app.Activity; 4 import android.content.Intent; 5 import android.o

杂记之activity之间的跳转

代码结构图 manifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="cn.com.chenzheng_java" android:versionCode="1" android:versi

Android Activity之间的跳转

Activity之间的跳转需要用到Intent(意图)组件,通过Intent可以开启新的Activity实现界面跳转功能. Intent被称为意图,是程序中各组件进行交互的一种重要方式,它不仅可以指定当前组件要执行的动作,还可以在不同组件之间进行数据传递.根据开启目标组件的方式不同,Intent被分为显式意图和隐式意图两种类型. 显式意图: 显式意图可以直接通过名称开启指定的目标组件,通过其构造方法Intent(Context packageContext , Class<?> cls)来实现

Android笔记(三) 使得Activity之间可以跳转---Intent

什么是Intent 一个APP肯定不单单由一个Activity构成,我们在使用过程中,经常需要在多个Activity中跳转,Android中Intent可以帮我们来完成在各个Activity中跳转的功能. Intent翻译为中文为“意图,目的”,在Android中提供了Intent机制来协助应用之间的交互和通讯,Intent负责对应用中一次操作的动作.动作涉及的数据.附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将Intent传递给调用的组件,并完成组件的调用.

安卓欢迎界面和activity之间的跳转问题

使用安卓的UI界面,就不得不了解activity,因为actvity就像是一个form表单一样,所有的UI都呈现在这里,他可以承载所有的UI控件. INtent就是一个中继站一样,他负责组件之间的沟通.下面我们来说一下一个actvity跳转到另一个actvity的方法. oncreate()时间里写,创建一个Intent对象,Intent intent=new Intent(); intent.setClassName(a.this,b.class); intent.startactivity(

Activity之间的跳转:

1.startActivity(intent) 2.startActivityForResult:a.启动BActivity 请求码为0:startActivityForResult(intent,0); b.重写onActivityResult(int requestCode,int resultCode,Intent data),回调的方式来获取指定Activity返回的结果; c.在跳转后的页面回转: //将数据放入Bundle对象中 Bundle bundle=new Bundle();

两个activity之间的跳转与传值

一:什么是Activity? 简单的说:Activity就是布满整个窗口或者悬浮于其他窗口上的交互界面.在一个应用程序中通常由多个Activity构成,都会在Manifest.xml中指定一个主的Activity,如下设置 <actionandroid:name="android.intent.action.MAIN" />当程序第一次运行时用户就会看这个Activity,这个Activity可以通过启动其他的Activity进行相关操作. 二:Activity的跳转与传值

android学习——实现两个activity之间的跳转

首先在第一个activity中创建一个按钮,id为button 然后在第一个activity的代码中创建监听器实现跳转,主activity代码如下: public class FirstActivity extends AppCompatActivity { //声明一个button按钮(不需要和实际按钮同名) Button bt1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(sav