设想一下:由当前Activity跳转到其它Activity,从其它Activity再返回到当前Activity时,如何获取其它Activity存放的数据?下面用一个例子讲解,

    点击selsect按钮跳转到另一界面,同时选择一个电话号码;然后将这个电话号码带回来显示在当前界面的EditText上。

1.代码实现:

(1)ResultActivity.class 

  1. /**
  2. *结果界面
  3. */
  4.  
  5. public class ResultActivity extends AppCompatActivity {
  6.  
  7. private static final int REQUEST_CODE_1 = 0x1;//请求码
  8. private EditText et;
  9. @Override
  10. protected void onCreate(Bundle savedInstanceState) {
  11. super.onCreate(savedInstanceState);
  12. setContentView(R.layout.activity_result);
  13.  
  14. et = (EditText) findViewById(R.id.et_phone_data);
  15.  
  16. }
  17.  
  18. /**
  19. * 选择一个电话号码
  20. * @param view
  21. */
  22. public void selectClick(View view){
  23. Intent intent = new Intent(this,PhoneListActivity.class);
  24. //参数:intent,请求编码
  25. startActivityForResult(intent,REQUEST_CODE_1);
  26.  
  27. }
  28.  
  29. //重写该方法来处理返回的结果
  30. @Override
  31. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  32. super.onActivityResult(requestCode, resultCode, data);
  33. if(requestCode==REQUEST_CODE_1 && resultCode==RESULT_OK){
  34. String nums = data.getStringExtra("no");
  35. et.setText(nums);
  36. }
  37. }
  38.  
  39. /**
  40. * 拨打电话--弹出手机里拨打电话的界面
  41. * @param view
  42. */
  43. public void CallClick(View view){
  44. String phoneNum = et.getText().toString();
  45. Intent intent = new Intent();
  46.  
  47. intent.setAction(Intent.ACTION_CALL);
  48. intent.setData(Uri.parse("tel:"+phoneNum));
  49. startActivity(intent);
  50. }
  51.  
  52. }

 

(2)PhoneListActivity.class

  1. /**
  2. *选择电话号码界面
  3. */
  4.  
  5. public class PhoneListActivity extends AppCompatActivity {
  6. private ListView lv;
  7. @Override
  8. protected void onCreate(Bundle savedInstanceState) {
  9. super.onCreate(savedInstanceState);
  10. setContentView(R.layout.activity_phone_list);
  11.  
  12. lv = (ListView) findViewById(R.id.lv_listView_phone);
  13.  
  14. final String[] numbers = {"18253563602","18810623657","15949822985","15854388317","15275323389","13521205590"};
  15. ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,android.R.id.text1,numbers);
  16. lv.setAdapter(adapter);
  17. //每一项的单击事件
  18. lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
  19. @Override
  20. public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
  21. String no = numbers[position];
  22. Intent intent = new Intent();
  23. intent.putExtra("no",no);
  24. setResult(RESULT_OK,intent);//设置返回码
  25. finish();//结束当前界面
  26. }
  27. });
  28. }
  29.  
  30. }

  

(3)activity_result.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:tools="http://schemas.android.com/tools"
  4. android:layout_width="match_parent"
  5. android:layout_height="match_parent"
  6. android:orientation="vertical"
  7. tools:context="com.langdon.taiyang.androidtest.activity.ResultActivity">
  8.  
  9. <EditText
  10. android:id="@+id/et_phone_data"
  11. android:hint="请选择一个电话号码"
  12. android:layout_width="match_parent"
  13. android:layout_height="wrap_content" />
  14. <Button
  15. android:id="@+id/bt_phone_select"
  16. android:text="select"
  17. android:onClick="selectClick"
  18. android:layout_width="wrap_content"
  19. android:layout_height="wrap_content" />
  20. <Button
  21. android:id="@+id/bt_phone_call"
  22. android:text="call"
  23. android:onClick="CallClick"
  24. android:layout_width="match_parent"
  25. android:layout_height="wrap_content" />
  26. </LinearLayout>

  

(4)activity_phone_list.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:tools="http://schemas.android.com/tools"
  4. android:id="@+id/activity_phone_list"
  5. android:layout_width="match_parent"
  6. android:layout_height="match_parent"
  7. android:paddingBottom="@dimen/activity_vertical_margin"
  8. android:paddingLeft="@dimen/activity_horizontal_margin"
  9. android:paddingRight="@dimen/activity_horizontal_margin"
  10. android:paddingTop="@dimen/activity_vertical_margin"
  11. tools:context="com.langdon.taiyang.androidtest.activity.PhoneListActivity">
  12. <ListView
  13. android:id="@+id/lv_listView_phone"
  14. android:layout_width="match_parent"
  15. android:layout_height="wrap_content" />
  16. </RelativeLayout>

 2.运行结果:(选择15275323389的电话号码,并将数据返回,显示在当前界面的EditText上)

Activity系列讲解---返回结果的处理的更多相关文章

  1. Activity系列讲解---三大基本状态与七大生命周期函数

    简介:四大组件之一,在应用中一个Activity可以用来表示一个界面,可以理解为用户可视化界面,一个android应用必须通过Activity来运行和启动. 1.三大基本状态与七大生命周期函数 2.代 ...

  2. Activity系列讲解---Activity运行时的屏幕方向,全屏,窗体模式的设置

    Android内置了方向感应器的支持.Android会根据所处的方向自动在竖屏与横屏间切换.但是有的应用程序只能在横/竖屏时运行,比如某些游戏,此时我们要锁定该Activity运行时的屏幕方向,< ...

  3. Activity系列讲解---数据传递

    在Android中,不同的Activity实例可能运行在一个进程中,也可能运行在不同的进程中.因此需要一种特别的机制帮助我们在Activity之间传递消息.Android中通过Intent对象来表示一 ...

  4. 2.《Spring学习笔记-MVC》系列文章,讲解返回json数据的文章共有3篇,分别为:

    转自:https://www.cnblogs.com/ssslinppp/p/4528892.html 个人认为,使用@ResponseBody方式来实现json数据的返回比较方便,推荐使用. 摘要 ...

  5. Android之Activity系列总结(二)--任务和返回栈

    任务和返回栈 应用通常包含多个 Activity.每个 Activity 均应围绕用户可以执行的特定操作设计,并且能够启动其他 Activity. 例如,电子邮件应用可能有一个 Activity 显示 ...

  6. Android之Activity系列总结(一)--Activity概览

    Activity 本文内容 创建 Activity 实现用户界面 在清单文件中声明 Activity 启动 Activity 启动 Activity 以获得结果 结束 Activity 管理 Acti ...

  7. Android开发工程师文集-Activity生命周期,启动方式,Intent相关介绍,Activity详细讲解

    前言 大家好,给大家带来Android开发工程师文集-Activity生命周期,启动方式,Intent相关介绍,Activity详细讲解的概述,希望你们喜欢 Activity是什么 作为一个Activ ...

  8. Android之Activity系列总结(三)--Activity的四种启动模式

    一.返回栈简介 任务是指在执行特定作业时与用户交互的一系列 Activity. 这些 Activity 按照各自的打开顺序排列在堆栈(即返回栈,也叫任务栈)中. 首先介绍一下任务栈: (1)程序打开时 ...

  9. Activity 事件以及如何得到新打开Activity关闭后返回的数据

    1: package com.example.activity_basic; 2:   3: import android.os.Bundle; 4: import android.app.Activ ...

随机推荐

  1. jQuery 常用速查

    jQuery 速查 基础 $("css 选择器") 选择元素,创建jquery对象 $("html字符串") 创建jquery对象 $(callback) $( ...

  2. 控制反转(IOC)

    对于很多大中型项目为了实现解耦都用到了控制反转. 常用的控制反转有unity,autoface,spring.Net 使用它们的目的归根结底就一个:避免了直接new一个对象. 今天抽时间将三种控制反转 ...

  3. Redis系列之(二):Redis主从同步,读写分离

    1. Redis主从同步 Redis支持主从同步.数据可以从主服务器向任意数量的从服务器上同步,同步使用的是发布/订阅机制. 2. 配置主从同步 Mater Slave的模式,从Slave向Maste ...

  4. JavaScript简单对象的定义方法

    工厂模式: 初级开发者可能会这样定义对象: var obj = new Object(); obj.name = "hero"; obj.showName=function (){ ...

  5. 大于16MB的QSPI存放程序引起的ZYNQ重启风险

    ZYNQ芯片是近两年比较流行的片子,双ARM+FPGA,在使用分立FPGA和CPU的场合很容易替代原来的分立器件. ZYNQ可以外接QSPI FLASH作为程序的存储介质. QSPI和SPI flas ...

  6. Http client 请求

    public String sendPost(String url, String param) { System.out.println("------------------ 1&quo ...

  7. Kinect2.0 for Mac开箱

    前段时间从米国带回来一个Kinect,坑爹地发现需要适配器才能连接电脑.于是又从微软官网下单了适配器.今天终于在Mac上把Kinect装起来跑了,与大家分享一点图片. Kinect驱动安装 Kinec ...

  8. VR、AR、MR的区别

    VR.AR.MR定义: 什么是虚拟现实? 虚拟现实(Virtual Reality,简称VR,又译作灵境.幻真)是近年来出现的高新技术,也称灵境技术或人工环境.虚拟现实是利用电脑模拟产生一个三维空间的 ...

  9. MYSQL远程登录权限设置 ,可以让Navicat远程连接服务器的数据库

    Mysql默认关闭远程登录权限,如下操作允许用户在任意地点登录: 1. 进入mysql,GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY ...

  10. 502 Bad Gateway深究

    早上收到502报警,设置的报警规则是502错误两分钟超过500就报警. 排障流程: 日志分析系统报障-->查看日志系统日志-->nginx错误日志-->php错误日志-->ph ...