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

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

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

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条)

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。