在parse.com的Andr​​oid记住用户登录? [英] Remembering user login on parse.com android?

查看:139
本文介绍了在parse.com的Andr​​oid记住用户登录?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

喜林专门尝试使用解析API进行登录,但遇到麻烦code,以检查用户是否在之前已登录即时通讯。我张贴的解析网站,但没有答案的问题。
我发现这个code的教程,但我不能确定在哪里把它放在我的发射活动。

 意图意图;如果(ParseUser.getCurrentUser()== NULL){
  意图=新意图(这一点,LoginActivity.class);
}其他{
  意图=新意图(这一点,MainActivity.class);
}startActivity(意向);
this.finish();

启动活动code

  / **
 它显示一个登录界面给用户,提供注册为*活动
 *好。在默认登录基于模板的loosley。
 *
 * @author罗宾逊三分球
 * /
公共类LoginActivity扩展BaseActivity {    @覆盖
    保护无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_login);
        Parse.initialize(这一点,XXXXXXXXXXXXXXX,XXXXXXXXXXXXXXX);        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.replace(R.id.main_view,LoginFragment.newInstance());
        fragmentTransaction.commit();    }    @覆盖
    公共布尔onCreateOptionsMenu(菜单菜单){
        super.onCreateOptionsMenu(菜单);
        。getMenuInflater()膨胀(R.menu.activity_login,菜单);
        返回true;    }    @覆盖
    公共布尔onOptionsItemSelected(菜单项项){
        //处理项目选择
        开关(item.getItemId()){
            案例R.id.menu_forgot_password:
                忘了密码();
                返回true;
            默认:
                返回super.onOptionsItemSelected(项目);
        }
    }    / **
     *打开forgotPassword对话框
     * /
    私人无效forgotPassword(){
         FragmentManager FM = getSupportFragmentManager();
         ForgotPasswordDialogFragment forgotPasswordDialog =新ForgotPasswordDialogFragment();
         forgotPasswordDialog.show(FM,NULL);
    }
    @订阅
    公共无效onSignInStart(AuthenticateUserStartEvent事件){
        showProgress(真,的getString(R.string.login_progress_signing_in));
    }    @订阅
    公共无效onSignInSuccess(AuthenticateUserSuccessEvent事件){
        showProgress(假的getString(R.string.login_progress_signing_in));
        意图loginSuccess =新意图(这一点,MainActivity.class);
        startActivity(loginSuccess);
        完();
    }    @订阅
    公共无效onSignInError(AuthenticateUserErrorEvent事件){
        showProgress(假的getString(R.string.login_progress_signing_in));
    }    @订阅
    公共无效onForgotPasswordStart(UserForgotPasswordStartEvent事件){
        showProgress(真,的getString(R.string.login_progress_signing_in));
    }    @订阅
    公共无效onForgotPasswordSuccess(UserForgotPasswordSuccessEvent事件){
        showProgress(假的getString(R.string.login_progress_signing_in));
        吐司面包= Toast.makeText(这一点,密码重置邮件已发送,Toast.LENGTH_LONG);
        toast.show();
    }    @订阅
    公共无效onForgotPasswordError(UserForgotPasswordErrorEvent事件){
        showProgress(假的getString(R.string.login_progress_signing_in));
        吐司面包= Toast.makeText(这一点,发生错误,请重试。Toast.LENGTH_LONG);
        toast.show();
    }


解决方案

我找到了解决办法。

在添加片段登录本code:

  ParseUser.logInInBackground(mUserNameEditText.getText()+
            mPasswordEditText.getText()+,新LogInCallback(){
            公共无效完成(ParseUser用户,ParseException的E){
                如果(用户= NULL和放大器;!急症== NULL){
                    Toast.makeText(getActivity(),
                            的getString(R.string.login_success),Toast.LENGTH_LONG);                    意图myIntent =新意图(getActivity(),SplashScreen.class);
                    。getActivity()startActivity(myIntent);
                }其他{
                    Toast.makeText(getActivity(),
                            的getString(R.string.login_failed),Toast.LENGTH_LONG);
                }
            }
        });

Hi Im specifically trying to use the parse api for login but Im having trouble getting the code to check if the user has logged in before. I posted the question on the parse website but no answers. I found this code in a tutorial but am unsure where to place it in my launcher activity

Intent intent;

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

startActivity(intent);
this.finish();

Launcher Activity Code

/**
 * 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();
    }

解决方案

I found the solution

Add in Login Fragment this code:

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

这篇关于在parse.com的Andr​​oid记住用户登录?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆