非非非非非非 2019-09-14 20:52 采纳率: 46.2%
浏览 1963
已采纳

安卓简易登陆界面一直提示账号密码错误

大佬们,我自己试着写了一个超级简易的登陆界面,但是运行之后点登录(输入账号密码之后)一直提示账号或密码错误,我自己看了半天也没发现哪有错误,请大佬指教。

package com.example.softwaretest;

import androidx.appcompat.app.AppCompatActivity;

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

public class MainActivity extends AppCompatActivity {
    boolean a;
    boolean b;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        EditText e1=findViewById(R.id.e1);
        EditText e2=findViewById(R.id.e2);
        String s=e1.getText().toString();
        a=s.equals("root");
        String s1=e2.getText().toString();
        b=s1.equals("root");
        Button button=findViewById(R.id.b1);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (a&&b){
                    Intent intent =new Intent(MainActivity.this,SecondActivity.class);
                    startActivity(intent);
                }
                else {
                    Toast.makeText(MainActivity.this,"账号或密码错误",Toast.LENGTH_SHORT).show();

                }
            }
        });

    }

}


  • 写回答

3条回答 默认 最新

  • 非非非非非非 2019-09-15 12:11
    关注

    之后在网上找了很多登录界面的代码,虽然大部分都没有用......
    然后看了半天,决定把文本框的实例化放到点击事件中,然后居然就可以了。
    究其原因,大概是因为在那之前进行实例化的化可能会导致文本框中的内容丢失。
    emmmm大概就是这样吧,如果之后还有什么理解的话我会再加上的。

    package com.example.softwaretest;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.content.Intent;
    import android.net.Uri;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
    
    public class MainActivity extends AppCompatActivity {
        boolean a;
        boolean b;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Button button=findViewById(R.id.b1);
            button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {//记住,**想要完成账号密码的比对,必须在点击事件中对文本框进行实例化。**
                    EditText e1=findViewById(R.id.e1);
                    EditText e2=findViewById(R.id.e2);
                    String s=e1.getText().toString();
                    a=s.equals("a");
                    String s1=e2.getText().toString();
                    b=s1.equals("");
                    if (a&&b){
                        Intent intent =new Intent(MainActivity.this,SecondActivity.class);
                        startActivity(intent);
                    }
                    else {
                        Toast.makeText(MainActivity.this,"账号或密码错误",Toast.LENGTH_SHORT).show();
    
                    }
                }
            });
    
        }
    
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 西南科技大学数字信号处理
  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥15 pyqt信号槽连接写法
  • ¥500 把面具戴到人脸上,请大家贡献智慧,别用大模型回答,大模型的答案没啥用
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。