某日突然想到标题问题,一般来说返回上一个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;
@Override
protected 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(){
@Override
public 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);
}
});
} @Override
protected 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);
} }
 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"; @Override
public 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(){
@Override
public 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(){
@Override
public 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();
}
});
} }

Username.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();
@Override
public 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"));
} }

Finish.java

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

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

代码下载

Android分步注册,Activity由B返回A修改再前往B,B中已填项不变的更多相关文章

  1. Android-管理Activity生命周期 -开始一个Activity

    很多程序都是从main()方法开始启动的,和其他程序不同,android是在activity生命周期的特定状态的特定回调方法中初始化代码的.activity启动和销毁的时候都用很多回调方法. 这里将要 ...

  2. Android开发学习—— activity

    activity生命周期 #Activity生命周期###void onCreate()* Activity已经被创建完毕###void onStart()* Activity已经显示在屏幕,但没有得 ...

  3. Android应用开发-Activity(重制版)

    Android四大组件:Activity,Service,Broadcast Receiver,Content Provider Activity是Context的子类,同时实现了Window.Cal ...

  4. Android复习笔记--Activity

    #Activity注册 Android四大组件(Activity,Service,Broadcast Receiver, Content Provider)都需要在AndroidManifest中注册 ...

  5. android学习之activity

    Activity 的生命周期 和 J2ME 的 MIDlet 一样,在 android 中,Activity 的生命周期交给系统统一管理.与 MIDlet 不同的是安装在 android 中的所有的 ...

  6. Android学习笔记——Activity的启动和创建

    http://www.cnblogs.com/bastard/archive/2012/04/07/2436262.html Android Activity学习笔记——Activity的启动和创建 ...

  7. android ApplicationContext Context Activity 内存的一些学习

    Android中context可以作很多操作,但是最主要的功能是加载和访问资源. 在android中有两种context,一种是application context,一种是activity cont ...

  8. Android 退出多Activity的application的方式

    在开发过程中,我们常常需要一个退出功能,来退出该应用的所有Activity.下面,我们列举一些退出应用的几种方式.以下用的源码点击查看源码地址 欢迎star,欢迎fork 利用ActivityCont ...

  9. <Android基础>(二) Activity Part 1

    1.活动的基本用法: 1) 手动创建活动.创建加载布局 2) 在AndroidManifest文件中注册 3) 在活动中添加Button.Toast.Menu 4) 销毁活动 2.Intent 1) ...

随机推荐

  1. sql 两列相加存到另一列

    假设表table1有a.b两个列,想生成另一个列为a列值+b列值计算列添加语句如下ALTER TABLE table1ADD c AS a+b

  2. [moka同学笔记]YII2中发送邮件示例(转载)

    原文:http://yiilib.com/topic/675/Yii2%E4%B8%AD%E5%8F%91%E9%80%81%E9%82%AE%E4%BB%B6%E7%A4%BA%E4%BE%8B { ...

  3. 【FFmpeg】ffplay播放rtsp视频流花屏问题

    问题描述:ffplay播放rtsp视频流时,播放过程中随机出现花屏现象. 基本流程学习:阅读ffplay源码,熟悉其播放rtsp视频流的基本流程. 在ffplay源码阅读和分析的基础上,画出了其播放r ...

  4. H5调用Android拨打电话

    1.AndroidAndJSInterface.java class AndroidAndJSInterface { /** * 该方法将被js调用,用于加载数据 */ @JavascriptInte ...

  5. zend framework2学习(一)初步入门

    声明:本人菜鸟一枚,由于项目中需要用到zf2框架进行开发,在此记载学习使用过程中的点点滴滴.才疏学浅,请多指教............. ------------------------------- ...

  6. Vue中class与style绑定

    gitHub地址:https://github.com/lily1010/vue_learn/tree/master/lesson07 一 用对象的方法绑定class 很简单,举个栗子: <!D ...

  7. 【使用 DOM】使用 Document 对象

    Document 对象时通往DOM功能的入口,它向你提供了当前文档的信息,以及一组可供探索.导航.搜索或操作结构与内容的功能. 我们通过全局变量document访问Document对象,它是浏览器为我 ...

  8. 转:Web App开发入门

    WebApp与Native App有何区别呢? Native App: 1.开发成本非常大.一般使用的开发语言为JAVA.C++.Objective-C. 2.更新体验较差.同时也比较麻烦.每一次发布 ...

  9. java.lang.RuntimeException: Fail to connect to camera service问题

    做音视频录制功能的真机调试的时候出现这个问题 错误意思为无法连接到相机服务 可能由两种情况导致 1.配置清单文件没有设置相应的权限 <uses-permission android:name=& ...

  10. Android自动更新安装后显示‘完成’‘打开’按钮

    /** * 安装apk * * @param url */ private void installApk() { File apkfile = new File(apkFilePath); if ( ...