Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android-硬代码登录不工作_Java_Android_Login_Hardcode_Hardcoded - Fatal编程技术网

Java Android-硬代码登录不工作

Java Android-硬代码登录不工作,java,android,login,hardcode,hardcoded,Java,Android,Login,Hardcode,Hardcoded,目标 通过AdminLogin.xml登录到my Admin.xml 课程流 import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.Toolbar; import android.view.View; import androi

目标

通过AdminLogin.xml登录到my Admin.xml

课程流

    import android.content.Intent;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.support.v7.widget.Toolbar;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;

    public class AdminLoginActivity extends AppCompatActivity {

    private Toolbar jAdminToolbar;

    private EditText jAdminID;
    private EditText jAdminPassword;

    private Button jAdminLoginBtn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_admin_login);

        jAdminToolbar = (Toolbar) findViewById(R.id.adminLoginToolbar);
        setSupportActionBar(jAdminToolbar);
        getSupportActionBar().setTitle("Admin Login");
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        jAdminID = (EditText) findViewById(R.id.adminLoginName);
        jAdminPassword = (EditText) findViewById(R.id.adminLoginPassword);
        jAdminLoginBtn = (Button) findViewById(R.id.adminLoginBtn);

        jAdminLoginBtn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                String adminLoginID = jAdminID.getText().toString();
                String adminLoginPassword = jAdminPassword.getText().toString();

                if(adminLoginID.equals("admin")&& adminLoginPassword.equals("admin")){
                    Intent intentAdmin = new Intent(AdminLoginActivity.this, AdminActivity.class);
                    intentAdmin.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
                    startActivity(intentAdmin);
                    finish();
                }else{
                    Toast.makeText(AdminLoginActivity.this, "Failed Login", Toast.LENGTH_SHORT).show();
                    return;
                }
            }
        });
    }
  }
import android.content.Intent;
import android.support.design.widget.TabLayout;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;

import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;

public class AdminActivity extends AppCompatActivity {

    private FirebaseAuth mAdminAuth;
    private Toolbar jAdminToolbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_admin);

        mAdminAuth = FirebaseAuth.getInstance();
        jAdminToolbar = (Toolbar) findViewById(R.id.adminToolbar);
        setSupportActionBar(jAdminToolbar);
        getSupportActionBar().setTitle("Administrator");


    }

    @Override
    public void onStart() {
        super.onStart();
        FirebaseUser currentUser = mAdminAuth.getCurrentUser();

        if(currentUser == null){
            sendUserToStartPage();
        }

    }

    private void sendUserToStartPage(){
        Intent intentStart = new Intent(AdminActivity.this, StartActivity.class);
        startActivity(intentStart);
        finish();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);

        getMenuInflater().inflate(R.menu.activity_admin_menu, menu);

        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        super.onOptionsItemSelected(item);

        if(item.getItemId() == R.id.mainSignOutBtn){
            FirebaseAuth.getInstance().signOut();
            sendUserToStartPage();
        }

        if(item.getItemId() == R.id.mainViewContactsBtn){
            Intent intentViewContacts = new Intent(AdminActivity.this, AllUsersActivity.class);
            startActivity(intentViewContacts);
        }

        return true;
    }
}
AdminLoginActivity-->AdminActivity

AdminLoginActivityClass

    import android.content.Intent;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.support.v7.widget.Toolbar;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;

    public class AdminLoginActivity extends AppCompatActivity {

    private Toolbar jAdminToolbar;

    private EditText jAdminID;
    private EditText jAdminPassword;

    private Button jAdminLoginBtn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_admin_login);

        jAdminToolbar = (Toolbar) findViewById(R.id.adminLoginToolbar);
        setSupportActionBar(jAdminToolbar);
        getSupportActionBar().setTitle("Admin Login");
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        jAdminID = (EditText) findViewById(R.id.adminLoginName);
        jAdminPassword = (EditText) findViewById(R.id.adminLoginPassword);
        jAdminLoginBtn = (Button) findViewById(R.id.adminLoginBtn);

        jAdminLoginBtn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                String adminLoginID = jAdminID.getText().toString();
                String adminLoginPassword = jAdminPassword.getText().toString();

                if(adminLoginID.equals("admin")&& adminLoginPassword.equals("admin")){
                    Intent intentAdmin = new Intent(AdminLoginActivity.this, AdminActivity.class);
                    intentAdmin.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
                    startActivity(intentAdmin);
                    finish();
                }else{
                    Toast.makeText(AdminLoginActivity.this, "Failed Login", Toast.LENGTH_SHORT).show();
                    return;
                }
            }
        });
    }
  }
import android.content.Intent;
import android.support.design.widget.TabLayout;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;

import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;

public class AdminActivity extends AppCompatActivity {

    private FirebaseAuth mAdminAuth;
    private Toolbar jAdminToolbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_admin);

        mAdminAuth = FirebaseAuth.getInstance();
        jAdminToolbar = (Toolbar) findViewById(R.id.adminToolbar);
        setSupportActionBar(jAdminToolbar);
        getSupportActionBar().setTitle("Administrator");


    }

    @Override
    public void onStart() {
        super.onStart();
        FirebaseUser currentUser = mAdminAuth.getCurrentUser();

        if(currentUser == null){
            sendUserToStartPage();
        }

    }

    private void sendUserToStartPage(){
        Intent intentStart = new Intent(AdminActivity.this, StartActivity.class);
        startActivity(intentStart);
        finish();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);

        getMenuInflater().inflate(R.menu.activity_admin_menu, menu);

        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        super.onOptionsItemSelected(item);

        if(item.getItemId() == R.id.mainSignOutBtn){
            FirebaseAuth.getInstance().signOut();
            sendUserToStartPage();
        }

        if(item.getItemId() == R.id.mainViewContactsBtn){
            Intent intentViewContacts = new Intent(AdminActivity.this, AllUsersActivity.class);
            startActivity(intentViewContacts);
        }

        return true;
    }
}
AdminActivityClass

    import android.content.Intent;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.support.v7.widget.Toolbar;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;

    public class AdminLoginActivity extends AppCompatActivity {

    private Toolbar jAdminToolbar;

    private EditText jAdminID;
    private EditText jAdminPassword;

    private Button jAdminLoginBtn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_admin_login);

        jAdminToolbar = (Toolbar) findViewById(R.id.adminLoginToolbar);
        setSupportActionBar(jAdminToolbar);
        getSupportActionBar().setTitle("Admin Login");
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        jAdminID = (EditText) findViewById(R.id.adminLoginName);
        jAdminPassword = (EditText) findViewById(R.id.adminLoginPassword);
        jAdminLoginBtn = (Button) findViewById(R.id.adminLoginBtn);

        jAdminLoginBtn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                String adminLoginID = jAdminID.getText().toString();
                String adminLoginPassword = jAdminPassword.getText().toString();

                if(adminLoginID.equals("admin")&& adminLoginPassword.equals("admin")){
                    Intent intentAdmin = new Intent(AdminLoginActivity.this, AdminActivity.class);
                    intentAdmin.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
                    startActivity(intentAdmin);
                    finish();
                }else{
                    Toast.makeText(AdminLoginActivity.this, "Failed Login", Toast.LENGTH_SHORT).show();
                    return;
                }
            }
        });
    }
  }
import android.content.Intent;
import android.support.design.widget.TabLayout;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;

import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;

public class AdminActivity extends AppCompatActivity {

    private FirebaseAuth mAdminAuth;
    private Toolbar jAdminToolbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_admin);

        mAdminAuth = FirebaseAuth.getInstance();
        jAdminToolbar = (Toolbar) findViewById(R.id.adminToolbar);
        setSupportActionBar(jAdminToolbar);
        getSupportActionBar().setTitle("Administrator");


    }

    @Override
    public void onStart() {
        super.onStart();
        FirebaseUser currentUser = mAdminAuth.getCurrentUser();

        if(currentUser == null){
            sendUserToStartPage();
        }

    }

    private void sendUserToStartPage(){
        Intent intentStart = new Intent(AdminActivity.this, StartActivity.class);
        startActivity(intentStart);
        finish();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);

        getMenuInflater().inflate(R.menu.activity_admin_menu, menu);

        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        super.onOptionsItemSelected(item);

        if(item.getItemId() == R.id.mainSignOutBtn){
            FirebaseAuth.getInstance().signOut();
            sendUserToStartPage();
        }

        if(item.getItemId() == R.id.mainViewContactsBtn){
            Intent intentViewContacts = new Intent(AdminActivity.this, AllUsersActivity.class);
            startActivity(intentViewContacts);
        }

        return true;
    }
}
清单文件

<?xml version="1.0" encoding="utf-8"?>

由于管理员登录是硬编码的,
FirebaseUser currentUser=mAdminAuth.getCurrentUser()中的
currentUser
设置为
null
。这导致活动被发送回起始页(
sendUserToStartPage();

发布完整的代码集后,您应该执行以下操作

comment out the sendUserToStartPage(); inside of the currentuser == null and then try.
为什么??因为用户是空的。为什么?因为你把它硬编码到代码里了。Firebase中不存在密码为admin的用户admin(如果存在,则您之前从未检查过),因此登录时,您不会为admin创建会话,因此当前用户为null

试着这样做

if ("admin".equals(adminLoginID)) {
    if ("admin".equals(adminLoginPassword)) {
        //goto activity
    }
} else {
    //not admin
}
实际上这可能更好

if (("admin".equals(adminLoginID)) && ("admin".equals(adminLoginPassword))) {
    //goto activity
} else {
    //not admin
}
甚至这个

if (("admin".equals(jAdminID.getText().toString().trim())) && ("admin".equals(jAdminPassword.getText().toString().trim()))) {
    //goto activity
} else {
    //not admin
}
请在清单中尝试此示例。 您的活动缺少主题,这是明显的。 此外,它还遗漏了元数据

<activity
    android:name=".Leagues.CreateLeague"
    android:label="Create League"
    android:parentActivityName=".MainActivity"
    android:screenOrientation="portrait"
    android:theme="@style/AppTheme2">
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value="com.aaa.bbb.MainActivity" />
</activity>

像这样巧妙地尝试
  • 全局获取
    字符串
    变量,然后
    声明并初始化它们
  • 在下一步中,您需要添加验证



很高兴帮助yohThank你的建议,但对我来说不幸的是,它不起作用:(它对我不起作用。在我输入输入并单击登录按钮后,应用程序会提示出一个白色布局几秒钟,并将我带回StartActivity。删除finish标记finish();和else语句中的return;标记。没有任何原因。我仍然有相同的问题:(我重新检查了活动的名称,似乎一切都正常……只是我无法在Hank you Vishal上签名,但我发现问题不在于if-else语句,因为当我登录管理员帐户时,FirebaseAuth正在检查当前用户,而当它无法检测到注册用户时……)管理员是硬编码的…它提示我返回主页,就好像我正在注销一样。这就是为什么toast没有显示并且出现了一个白色屏幕。就像代码一样,如果“currentUser==null”,它就是…sendUserToStartPage…它是null,因为硬编码的输入。