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

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

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

项目结构

布局文件

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="用户姓名:"/>
        <EditText
            android:id="@+id/et_name"
            android:layout_width="200dp"
            android:layout_height="wrap_content" />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="用户密码:"/>
        <EditText
            android:id="@+id/et_pwd"
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            android:inputType="textPassword"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center">
        <Button
            android:id="@+id/bt_login"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="登录"
            />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center">
        <TextView
            android:id="@+id/tv_show"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="用户详细信息"/>
    </LinearLayout>


</LinearLayout>

activity_inforset.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="昵称:"/>
        <EditText
            android:id="@+id/et_nickname"
            android:layout_width="200dp"
            android:layout_height="wrap_content" />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="年龄:"/>
        <EditText
            android:id="@+id/et_age"
            android:layout_width="200dp"
            android:layout_height="wrap_content" />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="性别选择:"/>
        <RadioButton
            android:id="@+id/rb_man"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="男"/>
        <RadioButton
            android:id="@+id/rb_woman"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="女"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="爱好选择:"/>
        <GridLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:columnCount="3"
            android:id="@+id/g1_hobby"
            >
            <CheckBox
                android:id="@+id/cb1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="阅读"
                />
            <CheckBox
                android:id="@+id/cb2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="旅游"
                />
            <CheckBox
                android:id="@+id/cb3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="发呆"
                />
            <CheckBox
                android:id="@+id/cb4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="唱歌"
                />
            <CheckBox
                android:id="@+id/cb5"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="编程"
                />
            <CheckBox
                android:id="@+id/cb6"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="运动"
                />
        </GridLayout>
    </LinearLayout>

    <Spinner
        android:id="@+id/sp_career"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:entries="@array/zhiye">
    </Spinner>


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center">
        <Button
            android:id="@+id/bt_save"
            android:layout_width="300dp"
            android:layout_height="wrap_content"
            android:onClick="clickSave"
            android:text="保存"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center">
        <Button
            android:id="@+id/bt_reset"
            android:layout_width="300dp"
            android:layout_height="wrap_content"
            android:text="重置"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center">
        <Button
            android:id="@+id/bt_return"
            android:layout_width="300dp"
            android:layout_height="wrap_content"
            android:text="返回"/>
    </LinearLayout>


</LinearLayout>

activity_show.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TextView
            android:id="@+id/tv_nickname"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="昵称:"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TextView
            android:id="@+id/tv_age"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="年龄:"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TextView
            android:id="@+id/tv_sex"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="性别:"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TextView
            android:id="@+id/tv_hobby"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="爱好:"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TextView
            android:id="@+id/tv_career"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="职业:"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <Button
            android:id="@+id/bt_sr"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="返回"
            />
    </LinearLayout>



</LinearLayout>

活动类

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<g1.getChildCount() ;i++) {
                    CheckBox cbs = (CheckBox) g1.getChildAt(i);
                    cbs.setChecked(false);
                }
                spCareer.setSelection(0);
            }
        });


        //返回上一个页面,并回传数据到MainActivity
        //为返回按钮设置监听器对象
        btReturn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                //2.回传数据
                //创建Intent对象
                Intent intent = new Intent();
                //2)写入数据
                get_data();

                intent.putExtra("nickname",sNickname);
                intent.putExtra("age",sAge);
                intent.putExtra("hobby",sHobby);
                intent.putExtra("sex",sSex);
                intent.putExtra("career",sCareer);


                //3)回传
                setResult(RESULT_OK,intent);
                //4)销毁
                finish();

            }
        });


    }

    public void get_data(){
        //传递的数据
        sNickname = etNickname.getText().toString();
        sAge = etAge.getText().toString();

        if(rMan.isChecked()){
            sSex = "男";
        }else {
            sSex = "女";
        }
        sHobby="";
        for(int i=0;i<g1.getChildCount() ;i++) {
            CheckBox cbs = (CheckBox) g1.getChildAt(i);
            //判断状态
            if(cbs.isChecked()) {
                sHobby+=cbs.getText().toString()+"  ";
            }
        }
        sCareer = spCareer.getSelectedItem().toString();

    }



}

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


    }
}

运行效果

登录界面

填写信息界面

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

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

  • 7
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Android 中,可以使用 Intent 对象进行 Activity 之间的跳转。 以下是一个简单的示例,演示如何从一个 Activity 跳转到另一个 Activity: 1. 创建一个新的 ActivityAndroid Studio 中,选择 File -> New -> Activity -> Empty Activity,然后填写 Activity 的名称和其他详细信息。 2. 在当前 Activity 中创建一个按钮 在布局文件中添加一个按钮,并在代码中找到该按钮。例如,以下代码创建了一个名为 “btnNext” 的按钮: <Button android:id="@+id/btnNext" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Next" /> 3. 添加按钮点击事件的监听器 在代码中为按钮添加一个点击事件的监听器。例如,以下代码创建了一个名为 “btnNext” 的按钮的点击事件监听器: Button btnNext = (Button) findViewById(R.id.btnNext); btnNext.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO: Add code to handle button click here } }); 4. 创建 Intent 对象 在按钮的点击事件监听器中,创建一个 Intent 对象来启动另一个 Activity。例如,以下代码创建了一个 Intent 对象,并将其用于启动另一个 Activity: Intent intent = new Intent(CurrentActivity.this, NextActivity.class); startActivity(intent); 其中,“CurrentActivity.this” 表示当前 Activity 的上下文,而 “NextActivity.class” 表示要启动的下一个 Activity 的类。 5. 在 AndroidManifest.xml 文件中注册 ActivityAndroidManifest.xml 文件中注册下一个 Activity。例如,以下代码将下一个 Activity 注册为应用程序的一个 Activity: <activity android:name=".NextActivity" android:label="@string/title_activity_next" android:parentActivityName=".CurrentActivity"> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".CurrentActivity" /> </activity> 6. 运行应用程序并测试 运行应用程序,并单击当前 Activity 中的按钮。应该会启动下一个 Activity。 以上就是 AndroidActivity 跳转的基本过程,你可以根据自己的需要在代码中添加其他功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ML.star

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值