提醒对话框和页面跳转

在这里插入图片描述

主页面

<?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"
    android:orientation="vertical"
    tools:context=".MainActivity">


    <FrameLayout
        android:id="@+id/content"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="0">

    </FrameLayout>


    <RadioGroup
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="40dp"
        android:orientation="horizontal">

    <RadioButton
        android:id="@+id/rb_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:textSize="15dp"
        android:textColor="#8E8433"
        android:layout_marginLeft="20dp"
        android:text="密码登录"
        />

        <RadioButton
            android:id="@+id/rb_2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:textColor="#8E8433"
            android:textSize="15dp"
            android:layout_marginRight="20dp"
            android:text="验证码登录"
            android:onClick="jumpToMainActivity2"
            />

    </RadioGroup>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_marginTop="40dp"
        android:gravity="center_vertical"
        >

        <TextView
            android:layout_width="90dp"
            android:layout_height="wrap_content"
            android:text="账号:"
            android:textColor="#D30F64"
            android:textSize="25sp"
            />

        <EditText
            android:id="@+id/et_account"
            android:layout_width="269dp"
            android:layout_height="50dp"
            android:layout_marginLeft="10dp"
            android:background="@drawable/edit_text_bg"
            android:hint="请输入手机号或用户名"
            android:inputType="text"
            android:paddingLeft="5dp"
            android:textSize="18sp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_marginTop="40dp"
        android:gravity="center_vertical"
        >

        <TextView
            android:layout_width="90dp"
            android:layout_height="wrap_content"
            android:textColor="#D30F64"
            android:text="密码:"
            android:textSize="25sp"
            />

        <EditText
            android:id="@+id/et_password"
            android:layout_width="180dp"
            android:layout_height="50dp"
            android:layout_marginLeft="10dp"
            android:background="@drawable/edit_text_bg"
            android:hint="请输入密码"
            android:inputType="numberPassword"
            android:paddingLeft="5dp"
            android:textSize="18sp" />

        <Button
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:text="忘记密码"
            android:textSize="13dp"
            android:onClick="jumpToMainActivity3"
            />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:gravity="center"
        android:layout_marginTop="20dp"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        >

        <CheckBox
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="记住密码" />

        <CheckBox
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="自动登录"
            android:layout_marginLeft="40dp"
            />

    </LinearLayout>

    <Button
        android:id="@+id/btn_Login"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="登录"
        android:textSize="25sp"
        />


</LinearLayout>

在这里插入图片描述

手机验证码页面

<?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"
    android:orientation="vertical"
    tools:context=".MainActivity2">


    <RadioGroup
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="40dp"
        android:orientation="horizontal">

        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:textSize="15dp"
            android:textColor="#8E8433"
            android:layout_marginLeft="20dp"
            android:text="密码登录"
            android:onClick="jumpToMainActivity"
            />

        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:textSize="15dp"
            android:textColor="#8E8433"
            android:layout_marginRight="20dp"
            android:text="验证码登录"/>

    </RadioGroup>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_marginTop="40dp"
        android:gravity="center_vertical"
        >

        <TextView
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:text="手机号码:"
            android:textColor="#D30F64"
            android:textSize="20sp"
            />

        <EditText
            android:id="@+id/et_phone"
            android:layout_width="250dp"
            android:layout_height="50dp"
            android:layout_marginLeft="10dp"
            android:background="@drawable/edit_text_bg"
            android:hint="请输入11位数手机号"
            android:inputType="number"
            android:paddingLeft="5dp"
            android:textSize="18sp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_marginTop="40dp"
        android:gravity="center_vertical"
        >

        <TextView
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:text="验证码:"
            android:textColor="#D30F64"
            android:textSize="20dp"
            />

        <EditText
            android:id="@+id/et_confirm"
            android:layout_width="180dp"
            android:layout_height="50dp"
            android:layout_marginLeft="10dp"
            android:background="@drawable/edit_text_bg"
            android:hint="请输入验证码"
            android:inputType="number"
            android:paddingLeft="5dp"
            android:textSize="18sp" />


        <Button
            android:id="@+id/btn_getNum"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:text="获取验证码"
            android:textSize="11dp"
            android:onClick="jumpToAlertDialogActivity"
            />


    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:gravity="center"
        android:layout_marginTop="20dp"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        >

        <CheckBox
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="记住密码" />

        <CheckBox
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="自动登录"
            android:layout_marginLeft="40dp"
            />

    </LinearLayout>

    <Button
        android:id="@+id/btn_Login1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="登录"
        android:textSize="25sp"
        />


</LinearLayout>

在这里插入图片描述

找回密码页面

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="5dp" >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="50dp" >

        <TextView
            android:id="@+id/tv_password_first"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="输入新密码:"
            android:textColor="@color/black"
            android:textSize="17sp" />

        <EditText
            android:id="@+id/et_password_first"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginBottom="5dp"
            android:layout_marginTop="5dp"
            android:layout_toRightOf="@+id/tv_password_first"
            android:gravity="left|center"
            android:hint="请输入新密码"
            android:inputType="numberPassword"
            android:maxLength="11"
            android:textColor="@color/black"
            android:textSize="17sp" />
    </RelativeLayout>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="50dp" >

        <TextView
            android:id="@+id/tv_password_second"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="确认新密码:"
            android:textColor="@color/black"
            android:textSize="17sp" />

        <EditText
            android:id="@+id/et_password_second"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginBottom="5dp"
            android:layout_marginTop="5dp"
            android:layout_toRightOf="@+id/tv_password_second"
            android:gravity="left|center"
            android:hint="请再次输入新密码"
            android:inputType="numberPassword"
            android:maxLength="11"
            android:textColor="@color/black"
            android:textSize="17sp" />
    </RelativeLayout>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="50dp" >

        <TextView
            android:id="@+id/tv_verifycode"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="  验证码:"
            android:textColor="@color/black"
            android:textSize="17sp" />

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_toRightOf="@+id/tv_verifycode" >

            <EditText
                android:id="@+id/et_verifycode"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginBottom="5dp"
                android:layout_marginTop="5dp"
                android:gravity="left|center"
                android:hint="请输入验证码"
                android:inputType="number"
                android:maxLength="6"
                android:textColor="@color/black"
                android:textSize="17sp" />

            <Button
                android:id="@+id/btn_verifycode"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_alignParentRight="true"
                android:layout_marginRight="-3dp"
                android:gravity="center"
                android:text="获取验证码"
                android:textColor="@color/black"
                android:textSize="17sp" />
        </RelativeLayout>
    </RelativeLayout>

    <Button
        android:id="@+id/btn_confirm"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="确  定"
        android:textColor="@color/black"
        android:textSize="20sp" />

</LinearLayout>

在这里插入图片描述

MainActivity

package com.example.retrievepassword;

import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentActivity;

import android.app.AlertDialog;
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;

import java.util.Random;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private static final String TAG = "tag";
    private Button btnLogin;
    private EditText etAccount, etPassword;
    String newPass,MPhone;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        getSupportActionBar().setTitle("用户名登录");
        btnLogin = findViewById(R.id.btn_Login);
        etAccount = findViewById(R.id.et_account);
        etPassword = findViewById(R.id.et_password);

        etAccount = findViewById(R.id.et_account);

        btnLogin.setOnClickListener(this);

        newPass = getIntent().getStringExtra("new_password");
        MPhone = getIntent().getStringExtra("phone");
        Log.d(TAG, "onCreate: --------------"+newPass);
        Log.d(TAG, "onCreate: --------------"+MPhone);
    }

    @Override
    public void onClick(View v) {
        String Account = etAccount.getText().toString();
        String Pass = etPassword.getText().toString();
        if(!Account.equals(MPhone)){
            Toast.makeText(this, "用户名错误" , Toast.LENGTH_SHORT).show();
        }else if(!Pass.equals(newPass)){
            Toast.makeText(this, "新密码错误" , Toast.LENGTH_SHORT).show();
        }
        else {
            Toast.makeText(this, "恭喜您!登陆成功" , Toast.LENGTH_SHORT).show();
        }
    }

        public void jumpToMainActivity2 (View view){
            Intent intent = new Intent(this, MainActivity2.class);
            startActivity(intent);
        }


        public void jumpToMainActivity3 (View view){
            String s = etAccount.getText().toString().trim();
            Intent intent = new Intent(this, LoginForgetActivity.class);
            intent.putExtra("phone", s);
            startActivity(intent);
        }
}



验证码的Activity

package com.example.retrievepassword;

import androidx.appcompat.app.AppCompatActivity;

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

import com.example.retrievepassword.util.ViewUtil;

public class MainActivity2 extends AppCompatActivity implements View.OnClickListener {

    private static final String TAG = "tag";
    private String confirm;
    private EditText et_verConfirm,etPhone;
    private Button btnLogin;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        getSupportActionBar().setTitle("验证码登录");
        Intent intent = getIntent();
        btnLogin = findViewById(R.id.btn_Login1);
        etPhone = findViewById(R.id.et_phone);
        et_verConfirm = findViewById(R.id.et_confirm);

        if(intent != null){
            confirm = intent.getStringExtra("data");
            Log.d(TAG, "onCreate :----------------"+confirm);
        }

        // 给手机号码编辑框添加文本变化监听器
        etPhone.addTextChangedListener(new MainActivity2.HideTextWatcher(etPhone, 11));


        btnLogin.setOnClickListener(this);

    }

    @Override
    public void onClick(View v) {
        String con = et_verConfirm.getText().toString();
        String mPhone = etPhone.getText().toString();

        if(mPhone != null && TextUtils.equals(con,confirm)){
            Toast.makeText(MainActivity2.this,"恭喜您!登陆成功",Toast.LENGTH_LONG).show();
        }else {
            Toast.makeText(MainActivity2.this,"验证码错误!",Toast.LENGTH_LONG).show();
        }
    }


    public void jumpToAlertDialogActivity(View view) {
        Intent intent = new Intent(this,AlertDialogActivity.class);
        startActivity(intent);
    }

    private class HideTextWatcher implements TextWatcher {
        private EditText mView; // 声明一个编辑框对象
        private int mMaxLength; // 声明一个最大长度变量

        public HideTextWatcher(EditText v, int maxLength) {
            super();
            mView = v;
            mMaxLength = maxLength;
        }

        // 在编辑框的输入文本变化前触发
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {}

        // 在编辑框的输入文本变化时触发
        public void onTextChanged(CharSequence s, int start, int before, int count) {}

        // 在编辑框的输入文本变化后触发
        public void afterTextChanged(Editable s) {
            String str = s.toString(); // 获得已输入的文本字符串
            // 输入文本达到11位(如手机号码),或者达到6位(如登录密码)时关闭输入法
            if ((str.length() == 11 && mMaxLength == 11)) {
                ViewUtil.hideOneInputMethod(MainActivity2.this, mView); // 隐藏输入法软键盘
            }
        }
    }


    public void jumpToMainActivity(View view) {
        Intent intent = new Intent(this,MainActivity.class);
        startActivity(intent);
    }
}


忘记密码的Activity

package com.example.retrievepassword;

import androidx.appcompat.app.AppCompatActivity;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

import java.util.Random;

public class LoginForgetActivity extends AppCompatActivity implements View.OnClickListener {

    private EditText et_password_first; // 声明一个编辑框对象
    private EditText et_password_second; // 声明一个编辑框对象
    private EditText et_verifyCode; // 声明一个编辑框对象
    private String mVerifyCode; // 验证码
    private String mPhone; // 手机号码

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login_forget);
        // 从布局文件中获取名叫et_password_first的编辑框
        getSupportActionBar().setTitle("找回密码");
        et_password_first = findViewById(R.id.et_password_first);
        // 从布局文件中获取名叫et_password_second的编辑框
        et_password_second = findViewById(R.id.et_password_second);
        // 从布局文件中获取名叫et_verifycode的编辑框
        et_verifyCode = findViewById(R.id.et_verifycode);
        findViewById(R.id.btn_verifycode).setOnClickListener(this);
        findViewById(R.id.btn_confirm).setOnClickListener(this);
        // 从上一个页面获取要修改密码的手机号码
        mPhone = getIntent().getStringExtra("phone");
    }


    @Override
    public void onClick(View v) {
        if (v.getId() == R.id.btn_verifycode) { // 点击了“获取验证码”按钮
            if (mPhone == null || mPhone.length() < 11) {
                Toast.makeText(this, "请输入正确的手机号", Toast.LENGTH_SHORT).show();
                return;
            }
            // 生成六位随机数字的验证码
            mVerifyCode = String.format("%06d", new Random().nextInt(999999));
            // 以下弹出提醒对话框,提示用户记住六位验证码数字
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setTitle("请记住验证码");
            builder.setMessage("手机号" + mPhone + ",本次验证码是" + mVerifyCode + ",请输入验证码");
            builder.setPositiveButton("好的", null);
            AlertDialog alert = builder.create();
            alert.show(); // 显示提醒对话框
        } else if (v.getId() == R.id.btn_confirm) { // 点击了“确定”按钮
            String password_first = et_password_first.getText().toString();
            String password_second = et_password_second.getText().toString();
            if (password_first.length() < 6 || password_second.length() < 6) {
                Toast.makeText(this, "请输入正确的新密码", Toast.LENGTH_SHORT).show();
                return;
            }
            if (!password_first.equals(password_second)) {
                Toast.makeText(this, "两次输入的新密码不一致", Toast.LENGTH_SHORT).show();
                return;
            }
            if (!et_verifyCode.getText().toString().equals(mVerifyCode)) {
                Toast.makeText(this, "请输入正确的验证码", Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(this, "密码修改成功", Toast.LENGTH_SHORT).show();
                // 以下把修改好的新密码返回给上一个页面
                Intent intent = new Intent(this,MainActivity.class); // 创建一个新意图
                intent.putExtra("new_password", password_first); // 存入新密码
                intent.putExtra("phone",mPhone);
                startActivity(intent);
            }
        }
    }
}

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
在 Qt 中,可以使用对话框(QDialog)来实现页面。以下是一个简单的示例,演示了如何通过对话框实现页面之间的。 首先,创建两个对话框类(Dialog1 和 Dialog2),并在 Dialog1 中添加一个按钮用于触发: ```cpp // dialog1.h #ifndef DIALOG1_H #define DIALOG1_H #include <QDialog> class Dialog1 : public QDialog { Q_OBJECT public: Dialog1(QWidget *parent = nullptr); private slots: void onButtonClicked(); }; #endif // DIALOG1_H // dialog1.cpp #include "dialog1.h" #include "dialog2.h" Dialog1::Dialog1(QWidget *parent) : QDialog(parent) { QPushButton *button = new QPushButton("Go to Dialog2", this); connect(button, &QPushButton::clicked, this, &Dialog1::onButtonClicked); setLayout(new QVBoxLayout); layout()->addWidget(button); } void Dialog1::onButtonClicked() { Dialog2 dialog2(this); if (dialog2.exec() == QDialog::Accepted) { // 处理 Dialog2 关闭后的操作 } } ``` 在上述代码中,我们通过按钮的 clicked 信号来触发 `onButtonClicked` 槽函数。该槽函数会创建一个 Dialog2 对象,并调用 `exec()` 方法显示对话框。当 Dialog2 对话框关闭后,我们可以根据返回的结果进行后续操作。 以下是 Dialog2 的简单实现: ```cpp // dialog2.h #ifndef DIALOG2_H #define DIALOG2_H #include <QDialog> class Dialog2 : public QDialog { Q_OBJECT public: Dialog2(QWidget *parent = nullptr); private slots: void onButtonClicked(); }; #endif // DIALOG2_H // dialog2.cpp #include "dialog2.h" Dialog2::Dialog2(QWidget *parent) : QDialog(parent) { QPushButton *button = new QPushButton("Go back to Dialog1", this); connect(button, &QPushButton::clicked, this, &Dialog2::onButtonClicked); setLayout(new QVBoxLayout); layout()->addWidget(button); } void Dialog2::onButtonClicked() { accept(); // 关闭对话框并返回 Accepted 结果 } ``` 在上述代码中,我们在 Dialog2 对话框中添加了一个按钮,用于触发返回到 Dialog1 的操作。当按钮被点击时,我们调用 `accept()` 方法来关闭对话框并返回 Accepted 结果。 通过这样的方式,当在 Dialog1 中点击按钮时,会创建一个 Dialog2 对象并显示出来。当 Dialog2 对话框关闭后,我们可以根据返回的结果进行后续操作,例如刷新界面或执行其他操作。 请注意,这只是一个简单的示例,实际的对话框页面可能需要更多的逻辑和控制。你可以根据实际需求进行扩展和修改。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值