2014-11-09 2 views
0

Я использую Android-активность для входа в систему, и он продолжает давать мне неправильную парольную ошибку, даже если мой пароль верен. Я проверил мой код несколько раз, но я не могу найти никаких ошибок. Он просто не запускает мою активность на дому и сообщает об ошибке. Может кто-то пожалуйста, проверьте мой код и поправьте меня, если я делаю что-то неправильно ...Android-ошибка входа в систему LoginActivity (неверный пароль)

** Editted: Добавлен полный код

*** Editted: решаемые эту проблему, проверив мою следующую деятельность, которая устанавливает сеанс перенаправить на страницу входа, когда сеанс не зарегистрирован (видимо, я пропустил это ранее). Спасибо за всю помощь.

private static final String[] DUMMY_CREDENTIALS = new String[] { 
     "[email protected]:hello", "[email protected]:world" }; 

public static final String EXTRA_EMAIL = "com.example.android.authenticatordemo.extra.EMAIL"; 

private UserLoginTask mAuthTask = null; 
private String mEmail; 
private String mPassword; 
private EditText mEmailView; 
private EditText mPasswordView; 
private View mLoginFormView; 
private View mLoginStatusView; 
private TextView mLoginStatusMessageView; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.activity_login); 

    mEmail = getIntent().getStringExtra(EXTRA_EMAIL); 
    mEmailView = (EditText) findViewById(R.id.email); 
    mEmailView.setText(mEmail); 

    mPasswordView = (EditText) findViewById(R.id.password); 
    mPasswordView 
      .setOnEditorActionListener(new TextView.OnEditorActionListener() { 
       @Override 
       public boolean onEditorAction(TextView textView, int id, 
         KeyEvent keyEvent) { 
        if (id == R.id.login || id == EditorInfo.IME_NULL) { 
         attemptLogin(); 
         return true; 
        } 
        return false; 
       } 
      }); 

    mLoginFormView = findViewById(R.id.login_form); 
    mLoginStatusView = findViewById(R.id.login_status); 
    mLoginStatusMessageView = (TextView) findViewById(R.id.login_status_message); 

    findViewById(R.id.sign_in_button).setOnClickListener(
      new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        attemptLogin(); 
       } 
      }); 
} 

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


public void attemptLogin() { 
    if (mAuthTask != null) { 
     return; 
    } 

    // Reset errors. 
    mEmailView.setError(null); 
    mPasswordView.setError(null); 

    // Store values at the time of the login attempt. 
    mEmail = mEmailView.getText().toString(); 
    mPassword = mPasswordView.getText().toString(); 

    boolean cancel = false; 
    View focusView = null; 

    // Check for a valid password. 
    if (TextUtils.isEmpty(mPassword)) { 
     mPasswordView.setError(getString(R.string.error_field_required)); 
     focusView = mPasswordView; 
     cancel = true; 
    } else if (mPassword.length() < 4) { 
     mPasswordView.setError(getString(R.string.error_invalid_password)); 
     focusView = mPasswordView; 
     cancel = true; 
    } 

    // Check for a valid email address. 
    if (TextUtils.isEmpty(mEmail)) { 
     mEmailView.setError(getString(R.string.error_field_required)); 
     focusView = mEmailView; 
     cancel = true; 
    } else if (!mEmail.contains("@")) { 
     mEmailView.setError(getString(R.string.error_invalid_email)); 
     focusView = mEmailView; 
     cancel = true; 
    } 

    if (cancel) { 
     // There was an error; don't attempt login and focus the first 
     // form field with an error. 
     focusView.requestFocus(); 
    } else { 

     mLoginStatusMessageView.setText(R.string.login_progress_signing_in); 
     showProgress(true); 
     mAuthTask = new UserLoginTask(); 
     mAuthTask.execute((Void) null); 
    } 
} 


@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2) 
private void showProgress(final boolean show) { 

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) { 
     int shortAnimTime = getResources().getInteger(
       android.R.integer.config_shortAnimTime); 

     mLoginStatusView.setVisibility(View.VISIBLE); 
     mLoginStatusView.animate().setDuration(shortAnimTime) 
       .alpha(show ? 1 : 0) 
       .setListener(new AnimatorListenerAdapter() { 
        @Override 
        public void onAnimationEnd(Animator animation) { 
         mLoginStatusView.setVisibility(show ? View.VISIBLE 
           : View.GONE); 
        } 
       }); 

     mLoginFormView.setVisibility(View.VISIBLE); 
     mLoginFormView.animate().setDuration(shortAnimTime) 
       .alpha(show ? 0 : 1) 
       .setListener(new AnimatorListenerAdapter() { 
        @Override 
        public void onAnimationEnd(Animator animation) { 
         mLoginFormView.setVisibility(show ? View.GONE 
           : View.VISIBLE); 
        } 
       }); 
    } else { 
     // The ViewPropertyAnimator APIs are not available, so simply show 
     // and hide the relevant UI components. 
     mLoginStatusView.setVisibility(show ? View.VISIBLE : View.GONE); 
     mLoginFormView.setVisibility(show ? View.GONE : View.VISIBLE); 
    } 
} 


public class UserLoginTask extends AsyncTask<Void, Void, Boolean> { 
    @Override 
    protected Boolean doInBackground(Void... params) { 
     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. 
     return false; 
    } 

    @Override 
    protected void onPostExecute(final Boolean success) { 
     mAuthTask = null; 
     showProgress(false); 
     if (success) { 
      finish(); 
      Intent myIntent = new Intent(LoginActivity.this, GarajHome.class); 
      LoginActivity.this.startActivity(myIntent); 
     } else { 
      mPasswordView.setError(getString(R.string.error_incorrect_password)); 
      mPasswordView.requestFocus(); 
     } 
    } 

    @Override 
    protected void onCancelled() { 
     mAuthTask = null; 
     showProgress(false); 
    } 
} 

ответ

0
@Override 
     protected Boolean doInBackground(Void... params) { 
      boolean isCorrect = false; 
      for (String credential : DUMMY_CREDENTIALS) { 
       String[] pieces = credential.split(":"); 
       if (pieces[0].equalsIgnoreCase(mEmail)&& pieces[1].equalsIgnoreCase(mPassword)) { 

          isCorrect=true; 
          break; 

       } 
      } 
       // TODO: register the new account here. 
      return isCorrect; 
     } 

HI я использовал код и написать мое удалили некоторую логику, что работает для меня, я думаю, что код я извлекал проблему там посмотреть на мой код

import android.animation.Animator; 
import android.animation.AnimatorListenerAdapter; 
import android.annotation.SuppressLint; 
import android.annotation.TargetApi; 
import android.app.Activity; 
import android.content.Intent; 
import android.os.AsyncTask; 
import android.os.Build; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.EditText; 
import android.widget.TextView; 

import com.pk.to_do_timer.R; 



public class test extends Activity{ 
private static final String[] DUMMY_CREDENTIALS = new String[] { 
     "[email protected]:hello", "[email protected]:world" }; 

public static final String EXTRA_EMAIL = "com.example.android.authenticatordemo.extra.EMAIL"; 

private UserLoginTask mAuthTask = null; 
; 

private EditText mEmailView; 
private EditText mPasswordView; 
private View mLoginFormView; 
private View mLoginStatusView; 
private TextView mLoginStatusMessageView; 
private String mEmail="[email protected]"; 
private String mPassword = "hello"; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.activity_login); 



    findViewById(R.id.sign_in_button).setOnClickListener(
      new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        attemptLogin(); 
       } 
      }); 
} 




public void attemptLogin() { 
    if (mAuthTask != null) { 
     return; 
    } 



     // showProgress(true); 
     mAuthTask = new UserLoginTask(); 
     mAuthTask.execute((Void) null); 
    } 





@SuppressLint("NewApi") 
public class UserLoginTask extends AsyncTask<Void, Void, Boolean> { 
    @Override 
    protected Boolean doInBackground(Void... params) { 
     boolean isCorrect = false; 
     for (String credential : DUMMY_CREDENTIALS) { 
      String[] pieces = credential.split(":"); 
      if (pieces[0].equalsIgnoreCase(mEmail)&& pieces[1].equalsIgnoreCase(mPassword)) { 

         isCorrect=true; 
         break; 

      } 
     } 

      // TODO: register the new account here. 
     return isCorrect; 
    } 

    @Override 
    protected void onPostExecute(final Boolean success) { 
     mAuthTask = null; 

     if (success) { 
      finish(); 
      Intent myIntent = new Intent(test.this, GarajHome.class); 
      test.this.startActivity(myIntent); 
     } 
    } 

    @Override 
    protected void onCancelled() { 
     mAuthTask = null; 
     //showProgress(false); 
    } 
} 
} 
+0

Я все еще имеющего то же самое ошибка (неправильный пароль) – user64293

+0

вы можете сообщить мне значения частей и попробовать \t \t штук [0] .equalsIgnoreCase (mEmail) метод просто разблокировать случаи разные. – Piyush

+0

Я также отредактировал ответ. – Piyush