安卓登录注册,Activity之间传值,返回登录成功的用户名密码或者登录失败

练习startActivityForResult方法的用法

代码中出现了大量的system.out.println(“一堆字符”),为了更好的看代码执行到那个地方出现问题。可以在安卓控制台加System.out过滤。建议过滤之前,先看看是否闪退。如果闪退,一般控制台大量刷屏。检查一下oncreate什么。可能是代码结构混乱了
1.LoginActivity.java

package com.example.myapplication;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class LoginActivity extends AppCompatActivity {
    private Button login;
    private Button reset;
    private EditText InputUN, InputPWD;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        System.out.print("yyyyyyyyyyyyyyyyyyyyyyyyyyyyyy");
        super.onCreate(savedInstanceState);
        System.out.print("ssssssssssssssssss");
        setContentView(R.layout.activity_login);
        System.out.print("LLLLLLLLLLLLLLLLLLLLLL");
        InputUN = findViewById(R.id.InputUN);
        InputPWD = findViewById(R.id.InputPWD);

        login = findViewById(R.id.login);
        login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Intent data = new Intent(LoginActivity.this, LoginOKActivity.class);
                startActivityForResult(data, 1);

                data.putExtra("name", InputUN.getText().toString());
                data.putExtra("password", InputPWD.getText().toString());
                startActivityForResult(data,1);


            }
        });
        //重置
        reset = findViewById(R.id.reset);
        reset.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                InputUN.setText("");
                InputPWD.setText("");
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 1 && resultCode == 2) {
            Toast.makeText(LoginActivity.this, "登录失败123!", Toast.LENGTH_LONG).show();

        }
    }
}


<?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">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingTop="40dp">

        <TextView
            android:id="@+id/userName"
            android:layout_width="120dp"
            android:layout_height="40dp"
            android:inputType="text"
            android:paddingLeft="10dp"
            android:text="用户名:"
            android:textSize="30dp"></TextView>

        <EditText
            android:id="@+id/InputUN"
            android:text=""
            android:inputType="text"
            android:layout_width="260dp"
            android:layout_height="40dp"
            >

        </EditText>
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingTop="40dp">

        <TextView
            android:id="@+id/userPWD"
            android:layout_width="120dp"
            android:layout_height="40dp"
            android:text="密    码:"
            android:textSize="30dp"
            android:paddingLeft="10dp"
            ></TextView>
        <EditText
            android:id="@+id/InputPWD"
            android:text=""
            android:inputType="textPassword"
            android:layout_width="260dp"
            android:layout_height="40dp"></EditText>
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingTop="50dp"
        android:layout_gravity="center">
        <Button
            android:id="@+id/login"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="登录"
            android:textSize="30dp"
            android:textColor="#8BC34A"></Button>
        <Button
            android:id="@+id/reset"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="重置"
            android:textSize="30dp"
            android:textColor="#F44336"
            android:layout_marginLeft="70dp"></Button>
    </LinearLayout>
</LinearLayout>

LoginOk.java

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;

public class LoginOKActivity extends AppCompatActivity {

    public static TextView showUserName;
    public static TextView showUserPWD;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login_ok);

        showUserName=findViewById(R.id.showUserName);
        showUserPWD=findViewById(R.id.showUserPWD);

        Intent data = getIntent(); //用于激活它的意图对象:这里的intent获得的是上个Activity传递的intent

        String name=data.getExtras().getString("name");
        String password=data.getExtras().getString("password");

        if(name.equals("张三")&&password.equals("123")){
            showUserName.setText(data.getStringExtra("name"));
            showUserPWD.setText(data.getStringExtra("password"));
        }
        else {
            Intent wrong=new Intent();
            setResult(2,wrong);
            Intent back = new Intent(LoginOKActivity.this, LoginActivity.class);
            startActivity(back);
            Toast.makeText(LoginOKActivity.this, "登录失败!请检查", Toast.LENGTH_LONG).show();
        }

    }

}

LoginOk.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".LoginOKActivity"
    android:orientation="vertical">

    <LinearLayout

    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
        android:paddingTop="30dp">

    <TextView
        android:id="@+id/shUserName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="您输入的用户名是:"
        android:textSize="30dp"
        android:maxLines="1"></TextView>
        <TextView
            android:id="@+id/showUserName"
            android:layout_width="120dp"
            android:layout_height="wrap_content"
            android:text=""
            android:textSize="30dp"
            android:maxLines="1"></TextView>

</LinearLayout>

    <LinearLayout
        android:paddingTop="30dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
    <TextView
        android:id="@+id/shUserPWD"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:maxLines="1"
        android:text="您输入的密码是:"
        android:textSize="30dp"></TextView>
    <TextView
        android:id="@+id/showUserPWD"
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:maxLines="1"
        android:text=""
        android:textSize="30dp"></TextView>
    </LinearLayout>
</LinearLayout>

在login中,设置requestCode,传值到LoginOK。在LoginOk中判断用户名和密码是否是张三和123.是则显示张三和123的用户名和密码。不是的话,返回login界面,并toast提示错误。
在 loginok中,设置resultcode
其实算是杂糅了两种方法。login中的下面这个方法。应该是loginok执行finsh()之后的。如果login是MainActivity。

 protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 1 && resultCode == 2) {
            Toast.makeText(LoginActivity.this, "登录失败123!", Toast.LENGTH_LONG).show();

        }
    }
原创文章 9 获赞 1 访问量 98

猜你喜欢

转载自blog.csdn.net/weixin_41225974/article/details/106002865
今日推荐