两个activity,A 跳转到 B ,在B中输入信息,B再将输入的信息带回到A中
先看效果图
第一步:在登录界面中设置点击对象,跳转页面时用startActivityForResult方法启动第二个页面
//给“注册”按钮设置点击事件
lg_register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//创建一个意图从某个页面到另一个页面,this为本类,class为要跳转的类
Intent intent = new Intent(MainActivity.this, RegisterActivity.class);
//activity一般有四种启动模式 常用的有两种,startActivity()用于没有返回值的跳转
//使用startActivityForResult方法启动第二个页面,这里有返回值,所以用startActivityForResult
//requestCode:请求的标识(当前页面)
// “0x00”代表请求码作为标识
startActivityForResult(intent, 0x00);
}
});
第二步:在注册界面中,先获取输入的值,再利用intent的putExtra()方法(在这里我将intent理解成一个篮子,用来暂时存放putExtra的值)
rg_register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//分别获取输入的姓名和密码
username = rg_name.getText().toString().trim();
userpassword = rg_password.getText().toString();
//创建一个意图对象
Intent intent = new Intent();
//利用putExtra将值放入到intent
intent.putExtra("username", username);
intent.putExtra("userpassword", userpassword);
//restltCode: 第二个页面返回的标识,这里为0x01
setResult(0x01, intent);
finish();
}
});
第三步:需要在接收数值的界面,也就是登录界面重写onActivityResult方法用于接收从第二个页面返回的数据
//重写onActivityResult方法,onActivityResult是回传的时候的回调方法 startActivityForResult一般和他搭配使用
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
lg_name = findViewById(R.id.lg_name);
lg_password = findViewById(R.id.lg_password);
//判断,如果请求码和第二个界面返回的标识与之对应时,就接收传过来的值
if (requestCode == 0x00 && resultCode == 0x01) {
// 获取第二个页面返回的data并且显示在控件lg_name和lg_password中
//需要注意的是getStringExtra内的值必须和第二个界面传值过来putExtra括号内第一个值一致
String name = data.getStringExtra("username");
String password = data.getStringExtra("userpassword");
lg_name.setText(name);
lg_password.setText(password);
Toast.makeText(this, "你已经注册成功", Toast.LENGTH_SHORT).show();
}
}
小结:
1.在第一个页面使用startActivityForResult方法启动第二个页面
2.在第一个页面重写onActivityResult方法用于接收从第二个页面返回的数据
3.在第二个页面设置回传数据,通过setResult方法来设置
MainActivity.java
package com.example.basketball;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget