我正在尝试使用电子邮件和密码验证用户。 我正在进行验证,但问题是,我正在使用改型库来发布数据,每当我在else中注释网络请求代码时,就会阻止其显示无错误坚果,每当我取消注释网络请求代码时,其显示错误toast消息输入密码
,即使我输入了密码。
下面是我的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
login = findViewById(R.id.login);
email = findViewById(R.id.email);
pwd = findViewById(R.id.pwd);
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final ProgressDialog prg = new ProgressDialog(MainActivity.this);
prg.setCancelable(false);
prg.setMessage("Logging in...");
prg.show();
String str1 = email.getText().toString();
String str2 = pwd.getText().toString();
if(str1.equals("")){
prg.dismiss();
TastyToast.makeText(getApplicationContext(),"Enter email",TastyToast.LENGTH_SHORT,
TastyToast.ERROR).show();
}
else if(str2.equals("")){
prg.dismiss();
TastyToast.makeText(getApplicationContext(),"Enter password",TastyToast.LENGTH_SHORT,
TastyToast.ERROR).show();
}
else{
Toast.makeText(getApplicationContext(),"Hello",Toast.LENGTH_SHORT).show();
Retrofit retrofit = RetrofitClient.getInstance();
ApiService apiService = retrofit.create(ApiService.class);
apiService.getResponse(str1,str2).subscribeOn(Schedulers.io())
.subscribe(new Observer<LoginResponse>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(final LoginResponse value) {
if(value.equals("Success")){
prg.dismiss();
}
runOnUiThread(new Runnable() {
@Override
public void run() {
TastyToast.makeText(getApplicationContext(),"response:" +value,TastyToast.LENGTH_SHORT,
TastyToast.ERROR).show();
}
});
}
@Override
public void onError(Throwable e) {
prg.dismiss();
runOnUiThread(new Runnable() {
@Override
public void run() {
TastyToast.makeText(getApplicationContext(),"Enter password",TastyToast.LENGTH_SHORT,
TastyToast.ERROR).show();
}
});
}
@Override
public void onComplete() {
}
});
}
});
}
我做错了什么?
str1.equals("")
如果str1(字符串)对象等于字符串obj=“”,则返回布尔结果,在这种情况下,最好使用
if(str1.isEmpty())
如果str1为空或不为空,则返回此值。