还记得在 parse.com android 上的用户登录吗?

2024-01-12

您好,我特别尝试使用解析 api 进行登录,但我无法获取代码来检查用户之前是否已登录。我在解析网站上发布了这个问题,但没有答案。 我在教程中找到了这段代码,但不确定将其放置在我的启动器活动中的何处。

Intent intent;

if(ParseUser.getCurrentUser() == null){
  intent = new Intent(this, LoginActivity.class);
}else{
  intent = new Intent(this, MainActivity.class);
}

startActivity(intent);
this.finish();

启动器活动代码

/**
 * Activity which displays a login screen to the user, offering registration as
 * well. Based loosley on the default Login template. 
 * 
 * @author Trey Robinson
 */
public class LoginActivity extends BaseActivity {

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


        Parse.initialize(this, "xxxxxxxxxxxxxxx", "xxxxxxxxxxxxxxx");

        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.replace(R.id.main_view, LoginFragment.newInstance());
        fragmentTransaction.commit();

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);
        getMenuInflater().inflate(R.menu.activity_login, menu);
        return true;

    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle item selection
        switch (item.getItemId()) {
            case R.id.menu_forgot_password:
                forgotPassword();
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }

    /**
     * Open the forgotPassword dialog 
     */
    private void forgotPassword(){
         FragmentManager fm = getSupportFragmentManager();
         ForgotPasswordDialogFragment forgotPasswordDialog = new ForgotPasswordDialogFragment();
         forgotPasswordDialog.show(fm, null);
    }


    @Subscribe
    public void onSignInStart(AuthenticateUserStartEvent event){
        showProgress(true, getString(R.string.login_progress_signing_in));
    }

    @Subscribe
    public void onSignInSuccess(AuthenticateUserSuccessEvent event){
        showProgress(false, getString(R.string.login_progress_signing_in));
        Intent loginSuccess = new Intent(this, MainActivity.class);
        startActivity(loginSuccess);
        finish();
    }

    @Subscribe
    public void onSignInError(AuthenticateUserErrorEvent event){
        showProgress(false, getString(R.string.login_progress_signing_in));
    }

    @Subscribe
    public void onForgotPasswordStart(UserForgotPasswordStartEvent event){
        showProgress(true, getString(R.string.login_progress_signing_in));
    }

    @Subscribe
    public void onForgotPasswordSuccess(UserForgotPasswordSuccessEvent event){
        showProgress(false,getString(R.string.login_progress_signing_in));
        Toast toast =Toast.makeText(this, "A password reset email has been sent.", Toast.LENGTH_LONG);
        toast.show();
    }

    @Subscribe
    public void onForgotPasswordError(UserForgotPasswordErrorEvent event){
        showProgress(false, getString(R.string.login_progress_signing_in));
        Toast toast =Toast.makeText(this, "An error has occured. Please try again.", Toast.LENGTH_LONG);
        toast.show();
    }

我找到了解决方案

在登录片段中添加以下代码:

ParseUser.logInInBackground(mUserNameEditText.getText() + "",
            mPasswordEditText.getText() + "", new LogInCallback() {
            public void done(ParseUser user, ParseException e) {
                if (user != null && e == null) {
                    Toast.makeText(getActivity(),
                            getString(R.string.login_success),Toast.LENGTH_LONG);

                    Intent myIntent = new Intent(getActivity(), SplashScreen.class);
                    getActivity().startActivity(myIntent); 


                } else {
                    Toast.makeText(getActivity(),
                            getString(R.string.login_failed),Toast.LENGTH_LONG);
                }
            }
        });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

还记得在 parse.com android 上的用户登录吗? 的相关文章

随机推荐