intent,实现两个活动之间数据的传递
一、Intent 可以启动一个活动,也可以在启动活动的时候传递数据。intent中提供了putExtra()方法,它可以把我们想要传递的数据暂存在intent中,启动了另一个活动后,通过getIntent().getStringExtra()、(或者getIntent().getIntExtra()通过活动传递的数据类型决定),再从 Intent中取出。
二、如果需要返回数据给上一个活动,则不在用startActivity()方法启动活动,而是通过startActivityForResult()方法来启动活动,这个方法是期望在活动销毁的时候能够返回一个结果给上一个活动。并且需要通过onActivityResult()方法来得到返回的数据。
三、本次要演示的代码为,通过点击activity_main.xml中的按钮传递数据,给act2.xml中的textView。然后,通过点击act2.xml的按钮返回一个数据给acitvity.main中的textView。
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/tv_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="mainActivity界面"/>
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="跳转"/>
</LinearLayout>
act2.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="act2界面"/>
<Button
android:id="@+id/btn_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="返回mainActivity"/>
</LinearLayout>
MainActivity.java
public class MainActivity extends AppCompatActivity {
    private Button mIntentButton;
    private TextView mTvBack;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mTvBack = (TextView) findViewById(R.id.tv_back);
        mIntentButton = (Button) findViewById(R.id.btn);
        mIntentButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(MainActivity.this,Act2.class);
                //使用putExtra()方法传递数据
                intent.putExtra("name","从mainActivity传过来的数据");
                //由于需要返回数据,使用 startActivityForResult()方法
                startActivityForResult(intent,1);
            }
        });
    }
    //此方法是用来接收返回的数据
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode == 1){
            if(resultCode == RESULT_OK){
                String st = data.getStringExtra("back");
                mTvBack.setText(st);
            }
        }
    }
}
Act2.java:
public class Act2 extends AppCompatActivity{
    private TextView mTv;
    private Button mBtnBack;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.act2);
        //接收intent数据
        String var = getIntent().getStringExtra("name");
        mTv = (TextView) findViewById(R.id.tv);
        mTv.setText(var);
        mBtnBack = (Button) findViewById(R.id.btn_back);
        mBtnBack.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent();
                intent.putExtra("back","返回到mainactivity");
                setResult(RESULT_OK,intent);
                finish();
            }
        });
    }
}
来自个人博客:intent,实现两个活动之间数据的传递
intent,实现两个活动之间数据的传递的更多相关文章
- DOM的小练习,两个表格之间数据的移动
		本次讲的是两个表格之间数据的移动,左边的表格移动到右边,并且左边表格移动内容消失. <head> <meta http-equiv="Content-Type" ... 
- JS之document例题讲解1(两张表之间数据转移、日期时间选择、子菜单下拉、用div做下拉菜单、事件总结)
		作业一:两个列表之间数据从一个列表移动到另一个列表 <div style="width:600px; height:500px; margin-top:20px"> & ... 
- [转]ASP.NET MVC中的两个Action之间值的传递--TempData
		本文转自:ASP.NET MVC中的两个Action之间值的传递--TempData 一. ASP.NET MVC中的TempData 在ASP.NET MVC框架的ControllerBase中存在 ... 
- vue页面之间数据的传递
		vue是由一个个组件组合而成的页面,今天我们就来说一下页面之间数据的传递. 我们经常会在后台管理系统看到用户详情,有添加用户和编辑用户.有时候我们的添加和编辑是在同一页面上以模态框的形式展现的,但有的 ... 
- 关于Cocos2d-x中两个场景之间参数的传递
		两个场景之间,有的时候要进行参数传递,如果想通过实例化出一个场景,从而得到属性和方法是不对的想法 你有两个场景,第一场景是用户登录界面,第二场景则是你登录后的界面,你如何将用户登录的值传到第二个场景呢 ... 
- MFC中两个对话框之间数据传递
		以下是在网上参考的一篇文章,网址:https://blog.csdn.net/foreverhuylee/article/details/21707197 这里有两种情况, 第一种情况是: (在一个基 ... 
- 【笔记】.NET开发环境下使用PostgreSQL+Oracle_fdw 实现两个数据库之间数据交互操作(二)
		一 新的可视化工具 因为前文所提到的,看不到外部服务器和外部表的问题,我更换了可视化工具. 好用的新工具PostgreSQL Maestro! 当然如此好用的工具不是免费的,如果想免费使用还请自己去找 ... 
- ASP.NET MVC中的两个Action之间值的传递--TempData
		一. ASP.NET MVC中的TempData 在ASP.NET MVC框架的ControllerBase中存在一个叫做TempData的Property,它的类型为TempDataDictiona ... 
- shell中命令之间数据的传递
		1.管道 "|" ls | cat -n > out.txt 2. 子shell 2.1 子shell 说明 在shell脚本中可以用()操作符可以定义一个子shell #/ ... 
随机推荐
- C#  INotifyPropertyChanged使用方法
			INotifyPropertyChanged 接口:向客户端发出某一属性值已更改的通知. NotifyPropertyChanged 接口用于向客户端(通常是执行绑定的客户端)发出某一属性值已更改的通 ... 
- 使用AngularJS的三个重要原因
			入门教程:http://www.ituring.com.cn/minibook/303 : http://angularjs.cn/tag/AngularJS 原因一:Google开发的框架 要知道开 ... 
- SQL 增删改查45道题
			create database School use School go create table Student --1.学生表 ( Sno ) not null primary key,--学号( ... 
- 制作jar文件
			一.制作可运行jar文件 使用java的swing.awt制作了一个简单的界面交互模块.程序打成jar包后,能双击运行,制作过程: 1.eclipse →properties →Export,选择ja ... 
- java_XML_DOM1
			一.Java DOM 的 API: 1.解析器工厂类:DocumentBuilderFactory 创建的方法:DocumentBuilderFactory dbf = DocumentBuilder ... 
- c#入门系列——类和对象的代码实现
			面向对象 说起面向对象,大家因该都听说过,也知道是一个编程的方法,简称oop技术.它将对象的算法和数据结构看作一个整体,而一个程序就是由多个对象结合的整体.这样做可以提高代码的复用率,提高了软件的可维 ... 
- Android EclipseIDE技巧
			一.Eclipse配置使用 1.显示行号(Winodw-->Preferences-->General-->Editors-->Text Editors-->勾上右侧的S ... 
- JavaScript 中的 this 问题总结 !
			2016-12-28 vvv阿城 JavaScript 转自 https://qiutc.me/post/this-this-this-in-javascript.html#call,_apply, ... 
- MySQL主从复制的原理和实践操作
			MySQL 主从(MySQL Replication),主要用于 MySQL 的实时备份.高可用HA.读写分离.在配置主从复制之前需要先准备 2 台 MySQL 服务器. 一.MySQL主从原理 1. ... 
- php新建数据库对象 基础知识
			数据访问 结合html 数据库 PHP面向对象的方式函数的方式 1建立通道 MySQLi 类通过构造函数造出 连接数据库地址 uesername 连接用户名 passwd dbname port so ... 
