1.背景:

要创建并显示一个Activity,可以调用startActivity,并传递给它一个Intent,如下面的代码所示:

startActivity(Intent myIntent);

可以构造Intent来显示地指定要打开的Activity类,或者包含一个目标Activity必须执行的动作。在后一种情况中,运行时将会使用一个称为“Intent解析(Intent resolution)”的过程来动态选择Activity。

还可以通过向Intent添加extra来向目标Activity发送额外的数据。

2.实例

利用startActivity创建并显示一个Activity,并向其传递数据。

1》程序启动时:

其布局代码如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context="com.demo.parameterdemo.MainActivity" ><EditTextandroid:id="@+id/info_et"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="在这里输入要传送的内容..." /><Button android:id="@+id/startAnotherActivity"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="开始传递"/></LinearLayout>

其中“开始传递”的事件处理代码如下:

// 启动子Activity,并从中获取返回信息private void startAnotherActivity() {Intent startIntent = new Intent(getApplicationContext(),AnotherActivity.class);startIntent.putExtra(AnotherActivity.RETURN_INFO, infoEditText.getText().toString());/** //也可以使用这种方式 * Bundle argBundle=new Bundle();* argBundle.putString(AnotherActivity.RETURN_INFO,* infoEditText.getText().toString()); * startIntent.putExtras(argBundle);*/startActivity(startIntent);}

2》输入数据,如下图所示

3》点击“开始传递”,如下图所示

可以看到已经成功,那么是如何接收到该数据呢?

private void getINFO() {// 获取传递过来的信息。String infoString = getIntent().getStringExtra(RETURN_INFO);subTextView.setText(infoString);}

3.详细代码如下:

1》MainActivity.java

package com.demo.parameterdemo;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;public class MainActivity extends Activity {// 声明控件private EditText infoEditText;private Button startAnotherButton;// 请求码private static final int ACTIVITY_REQUEST_CODE = 1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);init();}// 初始化private void init() {// 得到相应控件的引用infoEditText = (EditText) findViewById(R.id.info_et);startAnotherButton = (Button) findViewById(R.id.startAnotherActivity);// 注册事件startAnotherButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubstartAnotherActivity();}});}// 启动子Activity,并从中获取返回信息private void startAnotherActivity() {Intent startIntent = new Intent(getApplicationContext(),AnotherActivity.class);startIntent.putExtra(AnotherActivity.RETURN_INFO, infoEditText.getText().toString());/** //也可以使用这种方式 * Bundle argBundle=new Bundle();* argBundle.putString(AnotherActivity.RETURN_INFO,* infoEditText.getText().toString()); * startIntent.putExtras(argBundle);*/startActivity(startIntent);}}

2》SubActivity.java

package com.demo.parameterdemo;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;public class AnotherActivity extends Activity {// 声明控件private TextView subTextView;// 用于唯一标识要返回的信息// 应该尽量的长,最好加上所在类的全名,即:包名+类名+参数名public static final String RETURN_INFO = "com.demo.parameterdemo.SubActivity.info";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_another);init();getINFO();}// 初始化private void init() {// 得到相应控件引用subTextView = (TextView) findViewById(R.id.subTextView);}private void getINFO() {// 获取传递过来的信息。String infoString = getIntent().getStringExtra(RETURN_INFO);subTextView.setText(infoString);}}

使用Intent来启动Activity并传递参数相关推荐

  1. Docker启动SpringBoot项目传递参数

    SpringBoot项目 我们需要在启动项目时传递参数 # 方式1 java -Dxxx=xx zzz=zzz xxx.jar # 方式2 java xxx.jar --xxx=xxx --zzz=z ...

  2. Android编程权威指南学习:Activity之间传递参数

    2019独角兽企业重金招聘Python工程师标准>>> 在Android编程中,经常会有多个Activity之间.同Activity的旋转都要进行调用,数据传递的现象.如何理解Act ...

  3. Android Studio实现Activity之间传递参数

    目录 一.传递基本类型数据 (一)编辑MainActivity (二)编辑InfoActivity (三)布局 (四)效果 二.传递对象 (一)创建类 (二)编辑MainActivity (三)编辑I ...

  4. Activity之间传递参数

    发送 intent.setClass(Bmi.this, Report.class); Bundle bundle = new Bundle(); bundle.putString("KEY ...

  5. Android: 启动另外的APP及传递参数(转)

    转载自:http://blog.csdn.net/iefreer/article/details/8812585 有时候需要从一个APP中启动另外一个APP,比如Twitter/微信等. 如果你不知道 ...

  6. android 中文参数,(原)Android: 启动另外的APP及传递参数

    有时候需要从一个APP中启动另外一个APP,比如Twitter/微信等. 如果你不知道那个APP的Activity,但是知道包名(package name),那么可以使用如下的方法: Intent L ...

  7. android activity之间跳转和数据传递参数,Activity跳转(有返回数据跳转)以及传递参数和回传参数...

    使用Bundle在Activity之间传递数据 Bundle类是一个key-value对,是一个final类 两个Activity之间通信可以用Bundle类实现步骤: 新建一个Bundle类 Bun ...

  8. Android--intent-filter 过滤规则的匹配 (Activity通过Uri传递参数)

    当我们使用 Intent intent = new Intent(Intent.ACTION_VIEW); startActivity(intent); 这种方式启动Activity的时候, 叫做隐式 ...

  9. 父activity启动子activity并传递数据

    1. Intent component : activity,service,broadcast receiver以及content provider component 与操作系统 通信的一种媒介工 ...

最新文章

  1. shell脚本_查找无效网址
  2. R语言dir函数获取目录中文件或者文件夹名称实战
  3. 一位软件工程师的6年总结(转载)
  4. 面向.Net程序员的前端优化
  5. 认识学习网络布线与数制转换
  6. odoo10 ORM操作
  7. sqlserver安装教程
  8. JBoss BPM Travel Agency的微服务迁移故事
  9. 深度解析LSTM神经网络的设计原理
  10. Permission denied (publickey).
  11. 数据结构C语言实现动态顺序表
  12. android 安装p12证书,怎么使用P12证书的Android
  13. Web Proxy Auto-Discovery Service
  14. csgo星空天空代码_csgo天空背景怎么改_csgo天空背景更改方法
  15. deepin回收站无法清空
  16. 烟沙浮生 | 曾几何时,还是游吟长安的醉客
  17. 【相机硬触发】大恒相机硬触发说明文档
  18. vue + element-ui 实现分页功能
  19. MySQL的数据库引擎介绍
  20. mac系统计算机名,苹果电脑系统各版本名字该怎么念?

热门文章

  1. 上周热点回顾(7.10-7.16)
  2. Lucene 基础理论
  3. 微信突然出现redirect_uri 参数错误
  4. asp.net mvc源码分析-DefaultModelBinder 自定义的普通数据类型的绑定和验证
  5. POJ 2263 floyd思想
  6. Java Web学习(五)session、cookie、token
  7. 求任意大小矩阵的转置矩阵
  8. 消息推送与同步协议的思考
  9. 2个多边形,其中一个包围另一个,如何将中间的环带区域涂成红色
  10. 团队作业8——第二次项目冲刺(Beta阶段)博客汇总