非非非非非非
2019-09-14 20:52
采纳率: 46.2%
浏览 1.8k

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

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

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();
    
                    }
                }
            });
    
        }
    
    }
    
    
    
    打赏 评论
  • zqbnqsdsmd 2019-09-14 21:25
    打赏 评论
  • 雕·不懒惰 2019-09-17 14:58

    你这是因为在初始状态获取到的s s1是空,不是控件在不在点击事件初始化的问题,s s1需要在点击里面赋值

    打赏 评论

相关推荐 更多相似问题