繁体   English   中英

如何在 Android 中为不同的活动使用一个登录屏幕活动?

[英]How do I use One login screen activity for different activities in Android?

我目前正在 Android Studio 中开发一个 Android 应用程序,我正在尝试仅将一个登录屏幕用于两个不同的屏幕,而不是使用两个登录屏幕,这将更多地使用手机内存。 我尝试使用 if 和 else 语句,如果单击按钮 1 然后发送到屏幕 1。下面是我的代码:

public void userLogin() {

    String userEmail = email.getText().toString();
    String userPass = password.getText().toString();

    if(TextUtils.isEmpty(userEmail)){
        Toast.makeText(LoginActivity.this, "Please Enter Email", Toast.LENGTH_SHORT).show();
    }

    if(TextUtils.isEmpty(userPass)){
        Toast.makeText(LoginActivity.this, "Please Enter Password", Toast.LENGTH_SHORT).show();
    }


    auth.signInWithEmailAndPassword(userEmail, userPass)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if(task.isSuccessful()){
                        progressDialog.dismiss();
                        finish();
                        if (mainactivity.type == 1) {
                            Toast.makeText(LoginActivity.this, "Login Successful", Toast.LENGTH_SHORT).show();
                            startActivity(new Intent(LoginActivity.this, EmployeeActivity.class));
                        }
                        if(mainactivity.type == 2){
                            Toast.makeText(LoginActivity.this, "Login Successful", Toast.LENGTH_SHORT).show();
                            startActivity(new Intent(LoginActivity.this, AdminActivity.class));
                        }
                    }else{
                        Toast.makeText(LoginActivity.this, "ERROR: Invalid Email or Password", Toast.LENGTH_SHORT).show();
                        progressDialog.dismiss();
                    }
                    }

                });
            }

崩溃错误:

E/AndroidRuntime: FATAL EXCEPTION: main
              Process: com.javytharanee.quicksolattendance, PID: 7078
              android.content.ActivityNotFoundException: No Activity found to handle Intent {  }
                  at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2007)
                  at android.app.Instrumentation.execStartActivity(Instrumentation.java:1673)
                  at android.app.Activity.startActivityForResult(Activity.java:4586)
                  at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:767)
                  at android.app.Activity.startActivityForResult(Activity.java:4544)
                  at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:754)
                  at android.app.Activity.startActivity(Activity.java:4905)
                  at android.app.Activity.startActivity(Activity.java:4873)
                  at com.javytharanee.quicksolattendance.LoginActivity$2$override.onComplete(LoginActivity.java:89)
                  at com.javytharanee.quicksolattendance.LoginActivity$2$override.access$dispatch(Unknown Source:86)
                  at com.javytharanee.quicksolattendance.LoginActivity$2.onComplete(LoginActivity.java:77)
                  at com.google.android.gms.tasks.zzf.run(Unknown Source:23)
                  at android.os.Handler.handleCallback(Handler.java:873)
                  at android.os.Handler.dispatchMessage(Handler.java:99)
                  at android.os.Looper.loop(Looper.java:193)
                  at android.app.ActivityThread.main(ActivityThread.java:6669)
                  at java.lang.reflect.Method.invoke(Native Method)
                  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

任何帮助将不胜感激,因为我对应用程序开发完全陌生。

尝试在startActivity()之后调用finish() startActivity() 您正在失去活动的上下文,因此LoginActivity.this返回 null。

像这样

if(mainactivity.type == 1){
   Toast.makeToast(LoginActivity.this, "Message", Toast.LENGTH_SHORT);
   startActivity(new Intent(LoginActivity.this, EmployeeActivity.class));
}

if(mainactivity.type == 2){
   Toast.makeToast(LoginActivity.this, "Message", Toast.LENGTH_SHORT);
   startActivity(new Intent(LoginActivity.this, 
   Employee2Activity.class));
}

LoginActivity.this.finish();

公共无效用户登录(){

    String userEmail = email.getText().toString();
    String userPass = password.getText().toString();
    Log.e(TAG, "userLogin: "+userEmail  +userPass );
    if (TextUtils.isEmpty(userEmail)) {
        Toast.makeText(LoginActivity.this, "Please Enter Email", Toast.LENGTH_SHORT).show();
    } else if (TextUtils.isEmpty(userPass)) {
        Toast.makeText(LoginActivity.this, "Please Enter Password", Toast.LENGTH_SHORT).show();
    } else {
        Log.e(TAG, "userLogin: " );
        auth.signInWithEmailAndPassword(userEmail, userPass)
                .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {
                        if (task.isSuccessful()) {
                            progressDialog.dismiss();
                            Log.e(TAG, "onComplete: "+mainactivity.type );
                            if (mainactivity.type == 1) {
                                Toast.makeText(LoginActivity.this, "Login Successful", Toast.LENGTH_SHORT).show();
                                startActivity(new Intent(LoginActivity.this, EmployeeActivity.class));
                                finish();
                            } else if (mainactivity.type == 2) {
                                Toast.makeText(LoginActivity.this, "Login Successful", Toast.LENGTH_SHORT).show();
                                startActivity(new Intent(LoginActivity.this, AdminActivity.class));
                                finish();
                            }
                        } else {
                            Toast.makeText(LoginActivity.this, "ERROR: Invalid Email or Password", Toast.LENGTH_SHORT).show();
                            progressDialog.dismiss();
                        }
                    }

                });
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM