Android--Activity的跳转

目录

跳转所需的组件

Intent(意图)

简介

语法

示例

要求

创建Activity文件和布局文件

项目结构

布局文件

activity_main.xml

activity_inforset.xml

activity_show.xml

活动类

MainActivity

InforSetActivity

ShowActivity

运行效果


跳转所需的组件

Intent(意图)

简介

 Intent被称为意图,是程序中各组件进行交互的一种重要方式,它不仅可以指定当前组件要执行的动作,还可以在不同组件之间进行数据传递。

语法

1)创建Intent对象 

Intetn  intent=new Intent(Context packageContext, Classcls);

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文件和布局文件

右击Activity文件所要创建的包-->New-->Activity-->Empty Activity

Android--Activity的跳转_第1张图片

设置活动类文件名(Activity)以及布局文件名(Layout)

Android--Activity的跳转_第2张图片

项目结构

Android--Activity的跳转_第3张图片

布局文件

activity_main.xml



    
        
        
    
    
        
        
    

    
        

activity_inforset.xml



    
        
        
    
    
        
        
    
    
        
        
        
    

    
        
        
            
            
            
            
            
            
        
    

    
    


    
        

activity_show.xml



    
        
    
    
        
    
    
        

    

    
        
    

    
        
    

    
        

活动类

MainActivity

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);

            }
        }


    }
}

InforSetActivity

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

ShowActivity

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();
            }
        });


    }
}

运行效果

登录界面

Android--Activity的跳转_第4张图片

填写信息界面

Android--Activity的跳转_第5张图片

若点击返回,信息回传到登录界面

Android--Activity的跳转_第6张图片

 若点击保存,则跳转到show界面

Android--Activity的跳转_第7张图片

你可能感兴趣的:(Android,安卓,android)