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) ...
随机推荐
- css3中的zoom元素属性值测试
在样式表里头看到zoom:1的设置,很是好奇就去找了一些资料发现关于这个的讲述还是比较少. 理论知识 语法: zoom:normal | <number> | <percentage ...
- 【C#】线程协作式取消
Microsoft .Net Framework 提供了一个标准的取消操作的模式.这个模式是协作式的,意味着你想取消的操作必须显示地支持取消. CLR为我们提供了两个类: System.Threadi ...
- Java编码规范
1. Java命名约定 除了以下几个特例之外,命名时应始终采用完整的英文描述符.此外,一般应采用小写字母,但类名.接口名以及任何非初始单词的第一个字母要大写.1.1 一般概念 n 尽量使用完整 ...
- 自学silverlight 5.0
这是一个silverlight游戏:http://keleyi.com/keleyi/phtml/silverlight/ 接了个单子,非要用Silverlight 5来作一个项目,之前从来没接触过这 ...
- css中position与z-index
position属性 在css中,position属性用来控制元素的位置信息,其取值共有4种,即static.relative.absolute.fixed. 静态定位(static) 若没有指定po ...
- 004_URL 路由 - URL 路由
在Web Form 情况下,每一个 ASPX页面既是一个文件,又是一个队请求自包含的响应.而在 MVC 情况下,请求是由控制器类中的动作方法处理的,而且与硬盘上的文件没有一对一的相互关系. ASP.N ...
- FreeBSD10上编译尝试DeepIn UI
经历了两百多次命令的输入尝试,终于搞定. 1 git clone https://github.com/linuxdeepin/deepin-ui.git 11 git clone https://g ...
- [PE结构分析] 9.导出表 IMAGE_EXPORT_DIRECTORY
typedef struct _IMAGE_EXPORT_DIRECTORY { DWORD Characteristics; // 未使用,总为0 DWORD TimeDateStamp; // 文 ...
- C程序(3)
- PHP学习笔记:等比例缩放图片
直接上代码,imgzip($src,$newwid,$newhei)这个函数带进去的分别是原图片.缩放要求的宽度.缩放的长度.代码都备注了,不懂可以留言哈哈 <?php //压缩图片 缩略图 $ ...