某日突然想到标题问题,一般来说返回上一个Activity,当前Activity应该自动销毁。要想保留值,便想到用bundle传递的方式

最后功能是实现了,但感觉方法很笨。

主要代码如下:

package com.example.valuepass;import com.example.programdemo.R;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;public class MainActivity extends Activity {private EditText et_phonenumber;private Button bt_next;private int ACTIVITY1 = 1;private int USERNAME = 2;private Bundle bundle = new Bundle();private Intent intent = new Intent();private String TAG = "MainActivity";private String username;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);et_phonenumber = (EditText) findViewById(R.id.et_phonenumber);bt_next = (Button) findViewById(R.id.bt_next);bt_next.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){bundle.putString("phonenumber", et_phonenumber.getText().toString());Log.v(TAG,et_phonenumber.getText().toString());bundle.putString("username", username);intent.putExtras(bundle);intent.setClass(MainActivity.this,Username.class);startActivityForResult(intent,ACTIVITY1);  }    });     }@Overrideprotected void onActivityResult(int requestCode,int resultCode,Intent data){if(requestCode == ACTIVITY1){if(resultCode == USERNAME){Bundle getbundle;getbundle = data.getExtras();username = getbundle.getString("username");Log.v(TAG,username);}}super.onActivityResult(requestCode, resultCode, data);}}

Username.java

package com.example.valuepass;import com.example.programdemo.R;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;public class Username extends Activity{private TextView et_phonenumber;private EditText et_username;private Button bt_next;private Button bt_back;private Bundle bundle = new Bundle();private Intent intent = new Intent();private int USERNAME = 2;private String TAG = "Username";@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.username);et_phonenumber = (TextView)findViewById(R.id.et_phonenumber);et_username = (EditText)findViewById(R.id.et_username);bt_next = (Button)findViewById(R.id.bt_next);bt_back = (Button)findViewById(R.id.bt_back);bundle = this.getIntent().getExtras();Log.v(TAG,bundle.getString("phonenumber"));et_phonenumber.setText(bundle.getString("phonenumber"));et_username.setText(bundle.getString("username"));bt_next.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){bundle.putString("username", et_username.getText().toString());intent.putExtras(bundle);intent.setClass(Username.this,Finish.class);startActivity(intent);}});bt_back.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){Bundle bundle_back = new Bundle();bundle_back.putString("username", et_username.getText().toString());Log.v(TAG,bundle_back.getString("username"));intent.putExtras(bundle_back);setResult(USERNAME,intent);onBackPressed();}});}}

Finish.java

package com.example.valuepass;import com.example.programdemo.R;import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;public class Finish extends Activity{private TextView et_phonenumber;private TextView et_username;private Bundle bundle = new Bundle();@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.finish);bundle = this.getIntent().getExtras();et_phonenumber = (TextView)findViewById(R.id.et_phonenumber);et_username = (TextView)findViewById(R.id.et_username);et_phonenumber.setText(bundle.getString("phonenumber"));et_username.setText(bundle.getString("username"));}}

PS:后来在网上看到类似问题,有人回答:

加flag启动activity
Intent.FLAG_ACTIVITY_REORDER_TO_FRONT这个标志表示:如果这个activity已经启动了,就不产生新的activity,而只是把这个activity实例加到栈顶来就可以了。打算有时间试一下。不过似乎要改onBackPressed();

代码下载

Android分步注册,Activity由B返回A修改再前往B,B中已填项不变相关推荐

  1. Android之Toolbar的三个问题:修改左边箭头颜色、怎样修改右边以及子activity中的toolbar添加返回箭头...

    1)怎样修改左边这个小箭头的颜色? 2)怎样修改右边这三个点的颜色.怎样把这三个点替换成我自己的图标? 3)怎样让"交易清单"这4个字居中显示? 首先设置Theme为AppComp ...

  2. android学习笔记---1.为应用添加新的Activity,中使用Intent(意图),结果码,请求码,得到新打开Activity 关闭后返回的数据,Bundle类的作用

    1.为应用添加新的Activity 第一步:新建一个继承Activity的类,如:NewActivity public class NewActivity extends Activity {     ...

  3. Android如何跳转至目标Activity后按返回键不返回前一个Activity

    有时候我们希望从一个activity离开后,按返回键不要再回去(比如点击退出登陆后跳转至登陆界面,这是点击返回键不希望返回到之前的退出登陆界面),那么我们需要把这个activity从栈区中去除.考虑在 ...

  4. Android 第一课 Activity

    以下说明基于Android Studio,简称AS.(红色字体为自行添加,注在醒目) 具体包括: 创建活动 创建项目 加载布局 在AndroidManifest文件中注册 活动中使用(提醒)Toast ...

  5. Android四大组件---Activity

    1:前言 上一遍讲解了四大组件的广播----BroadcastReceiver,今天,我来解释一下四大组件最常用的activity. 2:概述 Activity 作为与用户交互的一个窗口,是使用非常频 ...

  6. android的四大组件及使用场景,Android/四大组件/Activity.md · BoraxZYF/AndroidInterview - Gitee.com...

    ## 四大组件 ## Activity ### Activity 的四种启动模式及使用场景 - standard 标准模式,Activity 的默认启动模式.每次启动一个 Activity 时都会创建 ...

  7. Android 组件系列-----Activity生命周期

    本篇随笔将会深入学习Activity,包括如何定义多个Activity,并设置为默认的Activity.如何从一个Activity跳转到另一个Activity,还有就是详细分析Activity的生命周 ...

  8. 【Android高级】Android系统以及Activity启动讲解

    一.Android系统启动 Android框架架构图:(来自网上,我觉得这张图看起来很清晰) Linux内核启动之后就到Android Init进程,进而启动Android相关的服务和应用.启动的过程 ...

  9. Android面试之Activity生命周期详解

    Activity生命周期详解 一 Activity的四种状态: Activity的生命周期中存在四种基本的状态:活动状态(Active/Runing),暂停状态(Paused),停止状态(Stoppe ...

  10. android 动态注册,Android studio实现动态注册Native方法

    说到动态就有静态,但是静态的注册在上一篇文章中已经包含了,这里就不在赘述了,直接说动态实现. 这里我们分步走. 1.创建android工程 选择普通工程 项目命名 不出意外,项目一会就建立完成. 2. ...

最新文章

  1. IDE接口驱动程序移植
  2. python脚本实例手机端-Python脚本实现自动化Android手机apk安装实例
  3. linux磁盘同步函数,Linux系统调用fsync函数详解
  4. boost::log模块实现从设置文件初始化库的示例,具有自定义过滤器和格式化程序工厂的属性
  5. 7.3.1 阻塞IO(blocking IO)
  6. 腾讯Node.js基础设施TSW正式开源
  7. mysql5.6.39编译安装_源码编译安装MySQL-5.6/mysql-5.6.39------踩了无数坑,重装了十几次服务器才会的,不容易啊!...
  8. php smarty php函数,smarty中使用php函数的方法
  9. 【Flink】Flink RecordWriterOutput pushToRecordWriter InterruptedException
  10. Linux之bash脚本编程---if补充和for循环
  11. java线程池概念_Java 线程池概念、原理、简单实现
  12. php模拟登录京东,京东jos 获取授权及php-sdk的使用示例
  13. Android 任务栈空间,【Android】任务和返回栈(tasks and back stack)
  14. python车牌字符分割_OpenCV+Python识别车牌和字符分割的实现
  15. win10 物理按键映射、快捷键修改
  16. jupyter notebook的安装与启动
  17. Python+Vue计算机毕业设计教师教学质量评价管理2lbw7(程序+LW+源码+部署)
  18. python--len函数的用法
  19. PhotonServer教程《五》
  20. includes方法

热门文章

  1. WEB开发(2) Servlet
  2. 解决pycharm下载第三方库失败
  3. 鼠标移入以及移出时图标背景透明效果
  4. 史上最详细最易懂的EventBus源码解析
  5. HALCON灰度值变换
  6. 如何防止基因编辑技术突破底线:警惕科学狂人再现
  7. 编程语言介绍以及特点
  8. 用PPO玩2048游戏--可以达到合成2048的目的
  9. 怎么在计算机网络上添加文件,教你win7如何设置网络共享文件夹
  10. 读书百客:《千秋岁·淡烟平楚》赏析