2016-04-01 2 views
1

Я пытаюсь сделать простую страницу входа, которая с правильным именем пользователя и паролем переходит к другому действию (уже создано) Также счетчик попыток работает неправильно. Извините Если это плохо сформулировано, надеюсь, это имеет смысл.Android Studio - страница входа не работает

public class login extends Activity { 

private EditText username; 
private EditText password; 
private Button login; 
private TextView loginLocked; 
private TextView attemptsLeft; 
private TextView numberOfRemainingLoginAttemptsTV; 
int numberOfRemainingLoginAttempts = 3; 

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

public void Login(View view) { 
    if (username.getText().toString().equals("admin") && password.getText().toString().equals("secret")) { 
     Intent i = new Intent(login.this, MainActivity.class); 
     startActivity(i); 
     Toast.makeText(getApplicationContext(), "Welcome User", 
       Toast.LENGTH_SHORT).show(); 

    } else { 
     Toast.makeText(getApplicationContext(), "Wrong Credentials", 
       Toast.LENGTH_SHORT).show(); 
     numberOfRemainingLoginAttempts--; 
     attemptsLeft.setVisibility(View.VISIBLE); 
     numberOfRemainingLoginAttemptsTV.setVisibility(View.VISIBLE); 
     numberOfRemainingLoginAttemptsTV.setText(Integer.toString(numberOfRemainingLoginAttempts)); 

     if (numberOfRemainingLoginAttempts == 0) { 
      login.setEnabled(false); 
      loginLocked.setVisibility(View.VISIBLE); 
      loginLocked.setBackgroundColor(Color.RED); 
      loginLocked.setText("Please Try Again Later"); 
     } 
    } 
} 

private void setupVariables() { 
    username = (EditText) findViewById(R.id.username); 
    password = (EditText) findViewById(R.id.password); 
    login = (Button) findViewById(R.id.button); 
    loginLocked = (TextView) findViewById(R.id.loginLocked); 
    attemptsLeft = (TextView) findViewById(R.id.attemptsLeft); 
    numberOfRemainingLoginAttemptsTV = (TextView) findViewById(R.id.numberOfRemainingLoginAttemptsTV); 
    numberOfRemainingLoginAttemptsTV.setText(Integer.toString(numberOfRemainingLoginAttempts)); 
} 
} 
+0

«Не работает» ничего о том, что идет не так не говорят с вашим кодом. Пожалуйста, улучшите описание, укажите, что вы ожидаете и что происходит. – Egor

ответ

-1

При использовании startActivity() вы должны использовать его в контексте (не всегда. Только в определенных условиях, но я думаю, что это хорошая практика, чтобы объявить его в контексте). Так что измените startActivity(i) на login.this.startActivity(i);

Надеюсь, это должно заставить его работать. Надеюсь, это поможет!

РЕДАКТИРОВАТЬ: PLS опубликовать файл макета. И в общедоступной ничтожной логин добавить этот

ПОМНИТЕ: поставить его прямо в пустоте, а не в if заявления

Log.i("LOGIN DETAILS","Username: "+username.getText().toString()+"Password: "+password.getText().toString()); 

Затем разместят ваш журнал кот инфо фильтр.

Если не так хорошо с бревенчатого кошки вы можете вместо этого добавить эту строку кода в вашем входе в систему общественного ничтожной НЕ в if заявлении

Toast.makeText(login.this, "Username: "+ username.getText().toString() + "password: " + password.getText().toString(), Toast.LENGTH_LONG).show(); 
+0

Пробовал это, 'login.this startActivity (i);' Получил ';' ожидаемый после .this – DeeMoMo

+0

Извините, это 'login.this.startActivity (i);' Autocorrect sorry –

+0

Нет проблем! Nope ничего не делает, когда я вводим правильные данные и нажимаю кнопку. @KISHORE_ZE – DeeMoMo

Смежные вопросы