关于首次使用Android中的共享首选项打开登录屏幕

时间:2019-01-23 09:16:48

标签: android sharedpreferences

我已经提到了许多答案,但是当我的应用程序首次打开时,我的应用程序仍未显示注册屏幕。我已经使用了共享的首选项。任何帮助将不胜感激。谢谢!

MainActivity.java:

public class MainActivity extends AppCompatActivity  {

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        String name;
        SharedPreferences prefs = this.getSharedPreferences( "prefs", MODE_PRIVATE);
         boolean firstStart=prefs.getBoolean("firstStart",true);

        if (firstStart) {
            //show start activity
             showRegistration();


        }

    }

    private void showRegistration() {

        SharedPreferences prefs=getSharedPreferences("prefs",MODE_PRIVATE);
        SharedPreferences.Editor editor=prefs.edit();
        editor.putBoolean("firstStart",false);
        editor.apply();
        Intent intent =new Intent(MainActivity.this,RegisterActivity.class);

    }


}

RegistrationActivity.java:

public class RegisterActivity extends AppCompatActivity implements View.OnClickListener{

            private static final String TAG = "Main Activity";
            Firebase mRootRef;
            FirebaseAuth mAuth;
            EditText mname;
            Button mlogin;
            Button msignin;
            Button mregister;
            EditText memail;
            EditText maddress;
            EditText mconfirmpassword; EditText mpwd;
    private void updateUI(FirebaseUser user){
            if (user !=null){
              Toast.makeText(RegisterActivity.this,"Registration successful",Toast.LENGTH_SHORT).show();
               startActivity(new Intent(RegisterActivity.this, MainActivity.class));
                             }              }

    protected void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);
           setContentView(R.layout.activity_register);
           mRootRef=new Firebase("https://goorgano-8bdfe.firebaseio.com/Users");
           msignin=(Button)findViewById(R.id.sign_in_admin);
           mAuth = FirebaseAuth.getInstance();
            mname=(EditText)findViewById(R.id.username);
            mlogin=(Button)findViewById(R.id.login);
            memail=(EditText)findViewById(R.id.email);
            maddress=(EditText)findViewById(R.id.address);
            mconfirmpassword=(EditText)findViewById(R.id.confirmpassword);
            mpwd= (EditText)findViewById(R.id.password);
            mregister=(Button)findViewById(R.id.register);
            mlogin.setOnClickListener(this);
            msignin.setOnClickListener(this);
            mregister.setOnClickListener(this);


    }

    public void onClick(View v)
    {
        int i=v.getId();
        if(i==R.id.sign_in_admin)
        {

        }
        else if(i==R.id.login)
        {
            startActivity(new Intent(RegisterActivity.this,LoginActivity.class));
        }
        else if(i==R.id.register)
        {
            createAccount();
            startActivity(new Intent(RegisterActivity.this,LoginActivity.class));
        }
    }
    private void createAccount()
    {
        Log.e(TAG, "createAccount:" + memail.getText().toString());
        if (!validateForm(memail.getText().toString(),mpwd.getText().toString(),maddress.getText().toString(),mname.getText().toString()))
            {
                return;
            }
               String value=mname.getText().toString();
               String key="name";
                Firebase childref=mRootRef.child(value);Firebase c=childref;
                childref.setValue(value);
                value=memail.getText().toString();
                String email=value;
                key="email";
                childref=childref.child(key);
                childref.setValue(value);
                value=maddress.getText().toString();
                String pwd=mpwd.getText().toString();
                key="address";
                childref=c.child(key);
                childref.setValue(value);
                mAuth.createUserWithEmailAndPassword(email,pwd)
                .addOnCompleteListener(this, new OnCompleteListener<AuthResult>()
                         {
                    @Override
                                public void onComplete(@NonNull Task<AuthResult> task) {
                                    if (task.isSuccessful()) {
                                        Log.e(TAG, "createAccount: Success!");

                                        // update UI with the signed-in user's information
                                        FirebaseUser user = mAuth.getCurrentUser();
                                        updateUI(user);
                                    } else {
                                        Log.e(TAG, "createAccount: Fail!", task.getException());
                                        Toast.makeText(getApplicationContext(), "Authentication failed!", Toast.LENGTH_SHORT).show();
                                        updateUI(null);
                                    }
                                                                                        }
                          });
    }

    private boolean validateForm(String email, String password, String address, String username)
      {

        if (TextUtils.isEmpty(email))
        {
            Toast.makeText(getApplicationContext(), "Enter email address!", Toast.LENGTH_SHORT).show();
            return false;
        }
        if(!Patterns.EMAIL_ADDRESS.matcher(email).matches())
        {
            Toast.makeText(getApplicationContext(), "Enter valid email address!", Toast.LENGTH_SHORT).show();
            return false;
        }
        if (TextUtils.isEmpty(password))
        {
            Toast.makeText(getApplicationContext(), "Enter password!", Toast.LENGTH_SHORT).show();
            return false;
        }

        if (TextUtils.isEmpty(username))
        {
            Toast.makeText(getApplicationContext(), "Enter username!", Toast.LENGTH_SHORT).show();
            return false;
        }
        if (TextUtils.isEmpty(address))
        {
            Toast.makeText(getApplicationContext(), "Enter address!", Toast.LENGTH_SHORT).show();
            return false;
        }
        if (password.length() < 6)
        {
            Toast.makeText(getApplicationContext(), "Password too short, enter minimum 6 characters!", Toast.LENGTH_SHORT).show();
            return false;
        }

        return true;
    }


}

1 个答案:

答案 0 :(得分:0)

以此更新您的onCreate

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        String name;
        SharedPreferences prefs = this.getSharedPreferences( "prefs", MODE_PRIVATE);
         boolean firstStart=prefs.contains("firstStart");

        if (!firstStart) {
            //show start activity
             showRegistration();


        }

    }

让我知道它有效

相关问题