目录
跳转所需的组件
Intent(意图)
简介
语法
示例
要求
创建Activity文件和布局文件
项目结构
布局文件
activity_main.xml
activity_inforset.xml
activity_show.xml
活动类
MainActivity
InforSetActivity
ShowActivity
运行效果
Intent被称为意图,是程序中各组件进行交互的一种重要方式,它不仅可以指定当前组件要执行的动作,还可以在不同组件之间进行数据传递。
1)创建Intent对象
Intetn intent=new Intent(Context packageContext, Class>cls);
Context :要求提供一个启动活动的 上下文,当前 Activity 窗口对象Class :是指要启动的 目标活动( Activity ),目标窗口类
2)启动
public void startActivity (Intent intent);Activity 类中的 startActivity () 方法专门用于启动活动,它接收一个 Intent 参数,将创建好的 intent 对象传入 startActivity () 方法即可启动目标活动。
(1)创建3个Activity,名称分别为MainActivity、InforSetActivity和ShowActivity,对应的布局文件名称分别为activity_main.xml、activity_inforset.xml和activity_show。
(2)界面构成:
①主界面activity_main:实现用户登录,包括以下控件:
a)3个文本框,分别用来显示“用户名”、“密码”、“用户详细信息”;
b)2个编辑框,分别用来接收用户输入的用户名、密码;
c)1个按钮,文本显示为“登录”。
②activity_ inforset:实现用户信息设置,包括以下控件:
a)4个文本框,分别用来显示“昵称”、“年龄”、 “性别选择”、“爱好选择”等提示信息;
b)2个编辑框,用来接收用户输入的昵称和年龄;
c)2个单选按钮表示性别;
d)多个复选框表示爱好;
e)1个下拉列表表示职业;
f)3个按钮,文本显示分别为“保存”、“重置”、“返回”。
③activity_show:实现用户注册信息的显示,包括以下控件:
a)5个文本框,分别用来显示用户提交的注册信息;
b)1个按钮,文本显示为“返回”。
(3)程序实现功能:
①点击主界面中的“登录”按钮,若用户名和密码输入为学生姓名和学号,则跳转到InforSetActivity界面。
②点击InforSetActivity界面中的“保存”按钮,将用户输入的信息在activity_show界面的文本框中显示出来。
③点击InforSetActivity界面中的“重置”按钮,将用户输入的信息清空。
④点击InforSetActivity界面中的“返回”按钮,将用户输入的信息回传给MainActivity,并显示在MainActivity的第3个文本框(用户详细信息)中。
⑤点击activity_show界面中的“返回”按钮,将关闭activity_show界面,返回到InforSetActivity界面中。
右击Activity文件所要创建的包-->New-->Activity-->Empty Activity
设置活动类文件名(Activity)以及布局文件名(Layout)
package com.star.shiyan0602;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
//声明
EditText etName,etPwd;
Button btLogin;
TextView tvShow;
String sName,sPwd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etName =(EditText) findViewById(R.id.et_name);
etPwd = findViewById(R.id.et_pwd);
btLogin = findViewById(R.id.bt_login);
tvShow = findViewById(R.id.tv_show);
//登录
btLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
sName = etName.getText().toString();
sPwd = etPwd.getText().toString();
if (sName.equals("star") && sPwd.equals("197324")){
Toast.makeText(MainActivity.this,"登录成功", Toast.LENGTH_SHORT).show();
//跳转
//1.创建Intent对象
Intent intent = new Intent();
intent.setClass(MainActivity.this,InforSetActivity.class);
//
startActivityForResult(intent,1);
//3.启动
startActivity(intent);
}else{
Toast.makeText(MainActivity.this,"用户姓名或密码错误,请重新输入", Toast.LENGTH_SHORT).show();
etName.setText("");
etPwd.setText("");
}
}
});
}
//数据回传 InforSetActivity-->MainActivity
//3.调取方法
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//判断数据的来源
if (requestCode==1){
//判断结果
if (resultCode==RESULT_OK){
//读取数据
String nickname = data.getStringExtra("nickname");
String age = data.getStringExtra("age");
String sex = data.getStringExtra("sex");
String hobby= data.getStringExtra("hobby");
String career = data.getStringExtra("career");
tvShow.setText("昵称:"+nickname+"\n年龄:"+age
+"\n性别:"+sex+"\n爱好:"
+hobby+"\n职业:"+career);
}
}
}
}
package com.star.shiyan0602;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.GridLayout;
import android.widget.RadioButton;
import android.widget.Spinner;
import android.widget.Toast;
public class InforSetActivity extends AppCompatActivity {
//声明
EditText etNickname,etAge;
RadioButton rMan,rWomen;
CheckBox cb1,cb2,cb3,cb4,cb5,cb6;
CheckBox cb[]=new CheckBox[6];
GridLayout g1;
Spinner spCareer;
Button btSave,btReset,btReturn;
String sNickname,sAge,sSex,sHobby,sCareer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_inforset);
etNickname = findViewById(R.id.et_nickname);
etAge = findViewById(R.id.et_age);
rMan = findViewById(R.id.rb_man);
rWomen = findViewById(R.id.rb_woman);
g1 = findViewById(R.id.g1_hobby);
spCareer = findViewById(R.id.sp_career);
btSave = findViewById(R.id.bt_save);
btReset = findViewById(R.id.bt_reset);
btReturn = findViewById(R.id.bt_return);
//保存
btSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//创建意图
Intent intent = new Intent();
intent.setClass(InforSetActivity.this,ShowActivity.class);
//获取数据
get_data();
//写入数据
intent.putExtra("nickname",sNickname);
intent.putExtra("age",sAge);
intent.putExtra("hobby",sHobby);
intent.putExtra("sex",sSex);
intent.putExtra("career",sCareer);
//启动
startActivity(intent);
}
});
//重置
btReset.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
etNickname.setText("");
etAge.setText("");
rMan.setChecked(false);
rWomen.setChecked(false);
for(int i=0;i
package com.star.shiyan0602;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class ShowActivity extends AppCompatActivity {
//声明
Button btR;
TextView tvNick,tvAge,tvSex,tvHobby,tvCareer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show);
tvNick = findViewById(R.id.tv_nickname);
tvAge = findViewById(R.id.tv_age);
tvSex = findViewById(R.id.tv_sex);
tvHobby = findViewById(R.id.tv_hobby);
tvCareer = findViewById(R.id.tv_career);
//获取intent
Intent intent = getIntent();
//获取数据
String nickname = intent.getStringExtra("nickname");
String age = intent.getStringExtra("age");
String sex = intent.getStringExtra("sex");
String hobby= intent.getStringExtra("hobby");
String career = intent.getStringExtra("career");
tvNick.append(nickname);
tvAge.append(age);
tvSex.append(sex);
tvHobby.append(hobby);
tvCareer.append(career);
btR = findViewById(R.id.bt_sr);
btR.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
}
}
登录界面
填写信息界面
若点击返回,信息回传到登录界面
若点击保存,则跳转到show界面