簡體   English   中英

關於首次使用Android中的共享首選項打開登錄屏幕

[英]Regarding opening login screen for first time using shared preferences in android

我已經提到了很多答案,但是當我的應用程序首次打開時,我的應用程序仍未顯示注冊屏幕。 我利用了共享的首選項。 任何幫助將不勝感激。謝謝!

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;
    }


}

以此更新您的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();


        }

    }

讓我知道它有效

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM