大佬们,我自己试着写了一个超级简易的登陆界面,但是运行之后点登录(输入账号密码之后)一直提示账号或密码错误,我自己看了半天也没发现哪有错误,请大佬指教。
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();
}
}
});
}
}
之后在网上找了很多登录界面的代码,虽然大部分都没有用......
然后看了半天,决定把文本框的实例化放到点击事件中,然后居然就可以了。
究其原因,大概是因为在那之前进行实例化的化可能会导致文本框中的内容丢失。
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();
}
}
});
}
}
https://blog.csdn.net/l970859633/article/details/50437687
你这是因为在初始状态获取到的s s1是空,不是控件在不在点击事件初始化的问题,s s1需要在点击里面赋值