在parse.com的Android记住用户登录? [英] Remembering user login on parse.com android?
本文介绍了在parse.com的Android记住用户登录?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
喜林专门尝试使用解析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的Android记住用户登录?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文