Android分步注册,Activity由B返回A修改再前往B,B中已填项不变
某日突然想到标题问题,一般来说返回上一个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中已填项不变的更多相关文章
- Android-管理Activity生命周期 -开始一个Activity
很多程序都是从main()方法开始启动的,和其他程序不同,android是在activity生命周期的特定状态的特定回调方法中初始化代码的.activity启动和销毁的时候都用很多回调方法. 这里将要 ...
- Android开发学习—— activity
activity生命周期 #Activity生命周期###void onCreate()* Activity已经被创建完毕###void onStart()* Activity已经显示在屏幕,但没有得 ...
- Android应用开发-Activity(重制版)
Android四大组件:Activity,Service,Broadcast Receiver,Content Provider Activity是Context的子类,同时实现了Window.Cal ...
- Android复习笔记--Activity
#Activity注册 Android四大组件(Activity,Service,Broadcast Receiver, Content Provider)都需要在AndroidManifest中注册 ...
- android学习之activity
Activity 的生命周期 和 J2ME 的 MIDlet 一样,在 android 中,Activity 的生命周期交给系统统一管理.与 MIDlet 不同的是安装在 android 中的所有的 ...
- Android学习笔记——Activity的启动和创建
http://www.cnblogs.com/bastard/archive/2012/04/07/2436262.html Android Activity学习笔记——Activity的启动和创建 ...
- android ApplicationContext Context Activity 内存的一些学习
Android中context可以作很多操作,但是最主要的功能是加载和访问资源. 在android中有两种context,一种是application context,一种是activity cont ...
- Android 退出多Activity的application的方式
在开发过程中,我们常常需要一个退出功能,来退出该应用的所有Activity.下面,我们列举一些退出应用的几种方式.以下用的源码点击查看源码地址 欢迎star,欢迎fork 利用ActivityCont ...
- <Android基础>(二) Activity Part 1
1.活动的基本用法: 1) 手动创建活动.创建加载布局 2) 在AndroidManifest文件中注册 3) 在活动中添加Button.Toast.Menu 4) 销毁活动 2.Intent 1) ...
随机推荐
- EF工作中踩过的坑.
1.EF同一个linq里边不支持两个或两个以上不同dbcontext的使用,必须拆解开才能使用; ef也不支持自定义集合和dbcontext属性的混合使用. 2.如果要用用统一域账号连接databas ...
- sql: sq_helptext
--查看表生成脚本 sql server --- '\r'是回车,'\n'是换行 /t相当于键盘的Tab键 --- 操作系统的不同,换行符操也不同:/r Mac /n Unix/Lin ...
- Oracle锁表与解锁
查看锁表语句:方法1: select sess.sid, sess.serial#, lo.oracle_username, lo.o ...
- java分派
变量被声明时的类型叫做变量的静态类型(Static Type) 又叫明显类型(Apparent Type).变量所引用的对象的真实类型又叫做变量的实际类型(Actual Type). 根据对象的类型而 ...
- [js开源组件开发]js手机联动选择地区仿ios 开源git
js手机联动选择地区 前言:由于网上找到了一个mobiscrool,比较全,但是不开源,只能试用15天,正式版竟然要三千块钱,穷人只能自己动手,写了个只针对弹窗地区选择的. 本站点所有的资源均在git ...
- SharePoint 如何找到List的Template ID
在我们添加Ribbon操作,或者对特定模板进行操作的时候,经常需要ListTemplate的数值,我们经常需要搜索各种网页,来查找匹配的ListTemplate值,其实,有个比较简便的方法. 像定义R ...
- Oracle计算时间差函数
两个Date类型字段:START_DATE,END_DATE,计算这两个日期的时间差(分别以天,小时,分钟,秒,毫秒): 天: ROUND(TO_NUMBER(END_DATE - START_DAT ...
- HBase数据模型剖析
出处:http://wuyudong.com/1987.html HBase 进行数据建模的方式和你熟悉的关系型数据库有些不同.关系型数据库围绕表.列和数据类型——数据的形态使用严格的规则.遵守这些严 ...
- 学习Android,最简单的按钮提示文本信息
最近都在看Android系统架构跟四大组件,刚开始自己看书看网络资料,简直就是一脸懵,今天在这里对初学者,或者自学的同学,可以跟着我来学习,Android 编码一个按钮出发事件的小案例: 当然,在此之 ...
- JAVA----编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符
package com.pb.demo.packclass.demo1; import java.util.HashSet; /** * 编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符 ...