2014-02-11 2 views
0

로그인보기에 내장 된 안드로이드를 사용하여 함께 구문 분석하려고합니다.안드로이드 생성 Parse.com을 통한 LoginActivity

public class UserLoginTask extends AsyncTask<Void, Void, Boolean> { 
     @Override 
     protected Boolean doInBackground(Void... params) { 
      // TODO: attempt authentication against a network service. 

      try { 
       // Simulate network access. 
       Thread.sleep(2000); 
      } catch (InterruptedException e) { 
       return false; 
      } 

      for (String credential : DUMMY_CREDENTIALS) { 
       String[] pieces = credential.split(":"); 
       if (pieces[0].equals(mEmail)) { 
        // Account exists, return true if the password matches. 
        return pieces[1].equals(mPassword); 
       } 
      } 

      // TODO: register the new account here. 
      ParseUser newUser = new ParseUser(); 
      newUser.setEmail(mEmail); 
      newUser.setPassword(mPassword); 
      newUser.signUpInBackground(new SignUpCallback() { 
       @Override 
       public void done(ParseException e) { 
        if (e == null) { 
         // Success! 
         Intent intent = new Intent(LoginActivity.this, MainActivity.class); 
         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
         intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); 
         startActivity(intent); 
        } else { 
         // Oops! 
         AlertDialog.Builder builder = new AlertDialog.Builder(LoginActivity.this); 
         builder.setMessage(e.getMessage().toUpperCase()) 
           .setTitle("Oops!") 
           .setPositiveButton(android.R.string.ok, null); 
         AlertDialog dialog = builder.create(); 
         dialog.show(); 
        } 
       } 
      }); 
      return true; 
     } 

나는 그것을 실행 코드는, 내 이메일/암호를 입력하고 응용 프로그램이 실패합니다.

답변

0

이 코드에서 보라 :

public class LoginActivity extends PlanndActivity 
{ 
    public EditText emailField; 
    public EditText passwordField; 
    public Button loginButton; 
    public View.OnClickListener loginButtonListener; 

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

     PushService.setDefaultPushCallback(getApplicationContext(), PlanndActivity.class); 
     ParseInstallation.getCurrentInstallation().saveInBackground(
       new SaveCallback() { 
        @Override 
        public void done(ParseException e) { 
         if(e!= null) 
          Log.e(Constants.TAG, "ERROR adding callback", e); 
        } 
       } 
     ); 

     emailField = (EditText) findViewById(R.id.email_login); 
     passwordField = (EditText) findViewById(R.id.password_login); 
     loginButton = (Button) findViewById(R.id.login_button); 

     loginButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       loginButton.setEnabled(false); 

       String email = ((EditText) findViewById(R.id.email_login)).getText().toString().trim(); 
       String password = ((EditText) findViewById(R.id.password_login)).getText().toString().trim(); 

       ParseUser.logInInBackground(email, password, new LogInCallback() { 
        @Override 
        public void done(ParseUser parseUser, ParseException e) { 
         if(parseUser != null) 
         { 
          // User is valid and is now logged in 
          Log.i(Constants.TAG, "Successful login for user " + parseUser.getUsername()); 
          Intent i = new Intent(getApplicationContext(), MainActivity.class); 
          startActivity(i); 

          PushService.subscribe(getApplicationContext(), "user_" + ParseUser.getCurrentUser().getObjectId(), PlanndActivity.class); 
         } 
         else 
         { 
          loginButton.setEnabled(true); 
          Log.i(Constants.TAG, "Unsuccessful login for user"); 
          // sign up failed and the problems 
          // needs to go and do the sign up activity 
         } 
        } 
       }); 
      } 
     }); 

     ((Button)findViewById(R.id.register_button)).setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       startActivity(new Intent(getApplicationContext(), RegisterActivity.class)); 

      } 
     }); 

     ((Button)findViewById(R.id.fake_login)).setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       emailField.setText("[email protected]"); 
       passwordField.setText("test"); 
      } 
     }); 

    } 
} 

출처 : plannd

는 사용자가 클릭에 로그인 할 때 사용 인라인 진행률 표시 줄과 같은보기의 애니메이션 this을 구현하는 시도에 따라 내용과 진행 표시 줄을 전환 너의 논리!

0

안에 signUpInBackground()을 실행하는 것이 문제입니다. doInBackground은 이미 백그라운드 스레드를 사용 중입니다. 그냥 사용하십시오 newUser.signUp()

관련 문제