欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

四大组件_Activity_2.通过显示意图启动Activity

程序员文章站 2022-12-02 16:22:26
如果一个Application只有一个Activity的话,Application能创造的价值可就比现在少很多了。我们需要Activity之间能够灵活的跳转,除了跳转,它能够在不同的Activity之间传送数据才算意思。今天我们来写一个活动跳转的demo(账户登录),并侧重了解一下显式意图启动Activity展示结果(不会上传动态图)显式启动Activity当前ActivityIntent intent = new Intent(MainActivity.this,SecondAc...

如果一个Application只有一个Activity的话,Application能创造的价值可就比现在少很多了。我们需要Activity之间能够灵活的跳转,除了跳转,它能够在不同的Activity之间传送数据才算意思。
今天我们来写一个活动跳转的demo(账户登录),并了解一下显式意图启动Activity

  • 展示结果(不会上传动态图)
    四大组件_Activity_2.通过显示意图启动Activity
    四大组件_Activity_2.通过显示意图启动Activity

  • 显式启动Activity

  • 当前Activity

Intent intent = new Intent(MainActivity.this,SecondActivity.class);//参数:当前上下文、要跳转活动的字节码文件
                intent.putExtra("account",accountText);//数据传输
                intent.putExtra("password",passwordText);
                startActivity(intent);//启动Activity
  • 跳转Activity方
		Intent intent = getIntent();//响应
        account = intent.getStringExtra("account");//接收数据
        password = intent.getStringExtra("password");
  • 来具体看看这个demo
    • xml布局文件(activity_main)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <TextView
        android:layout_marginTop="20dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="账号"/>
    <EditText
        android:id="@+id/account_edit"
        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/password_edit"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="textPassword"/>
    <Button
        android:id="@+id/sign_in_button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="立即登录"/>

</LinearLayout>
  • activity_second.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".SecondActivity">
    <TextView
        android:id="@+id/account_text"
        android:layout_marginTop="20dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="您的账户是:******"/>
    <TextView
        android:id="@+id/password_text"
        android:layout_marginTop="10dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="您的密码是:******"/>
</LinearLayout>
  • MainActivity
package com.example.firstactivity;

import androidx.appcompat.app.AppCompatActivity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    private EditText mAccount;
    private EditText mPassword;
    private Button mLogin;
    private String TAG = "MainActivity";
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();//初始化UI
        initListener();//初始化监听
    }

    private void initListener() {
        mLogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Log.d(TAG,"登录被点击");
                handleLogin();
            }

            private void handleLogin() {
                String accountText = mAccount.getText().toString().trim();
                String passwordText = mPassword.getText().toString().trim();
                if (TextUtils.isEmpty(accountText)) {//判断账户是否为空
                    Toast.makeText(MainActivity.this,"账号为空",Toast.LENGTH_SHORT).show();
                    return;
                }
                if (TextUtils.isEmpty(passwordText)) {//判断密码是否为空
                    Toast.makeText(MainActivity.this,"密码为空",Toast.LENGTH_SHORT).show();
                    return;
                }

                Intent intent = new Intent(MainActivity.this,SecondActivity.class);
                intent.putExtra("account",accountText);
                intent.putExtra("password",passwordText);
                startActivity(intent);
            }
        });
    }

    private void initView() {
        mAccount = findViewById(R.id.account_edit);
        mPassword = findViewById(R.id.password_edit);
        mLogin = findViewById(R.id.sign_in_button);
    }
}
  • SecondActivity
package com.example.firstactivity;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

public class SecondActivity extends AppCompatActivity {

    private TextView mAccount;
    private TextView mPassword;
    private String account;
    private String password;
    String TAG = "SecondActivity";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
        initData();////初始化数据
    }

    private void initData() {
        Intent intent = getIntent();
        account = intent.getStringExtra("account");
        password = intent.getStringExtra("password");
        Log.e(TAG,"account:"+account);
        Log.e(TAG,"password:"+password);
        initView();//初始化UI
    }

    private void initView() {
        mAccount = findViewById(R.id.account_text);
        mPassword = findViewById(R.id.password_text);
        mAccount.setText("您的账号是:"+account+"\n");
        mPassword.setText("您的密码是:"+password+"\n");
    }
}
  • 新手提示:不要忘记在AndroidManifest中注册新建的Activity

本文地址:https://blog.csdn.net/weixin_44618862/article/details/107561595

相关标签: Android