Android Studio-登录页面不工作
我正在尝试创建一个简单的登录页面,使用正确的用户名和密码将转到另一个活动(已创建),并且尝试计数器也无法正常工作。抱歉,如果这句话措词不当,希望它有意义Android Studio-登录页面不工作,android,android-studio,Android,Android Studio,我正在尝试创建一个简单的登录页面,使用正确的用户名和密码将转到另一个活动(已创建),并且尝试计数器也无法正常工作。抱歉,如果这句话措词不当,希望它有意义 public class login extends Activity { private EditText username; private EditText password; private Button login; private TextView loginLocked; private TextView attemptsLef
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));
}
}
当您使用
startActivity()
时,您必须在上下文中使用它(不总是。仅在某些情况下,但我认为在上下文中声明它是一种好的做法)。因此,将startActivity(i)
更改为login.this.startActivity(i)代码>
希望这能让它运行起来。
希望有帮助
编辑:请张贴您的布局文件以及。并在您的公共void登录中添加此
请记住:将其直接放入void中,而不是if
语句中
Log.i("LOGIN DETAILS","Username: "+username.getText().toString()+"Password: "+password.getText().toString());
Toast.makeText(login.this, "Username: "+ username.getText().toString() + "password: " + password.getText().toString(), Toast.LENGTH_LONG).show();
然后用信息过滤器发布日志猫
如果您对log cat不太熟悉,您可以在public void login not inIf
语句中添加这行代码
Log.i("LOGIN DETAILS","Username: "+username.getText().toString()+"Password: "+password.getText().toString());
Toast.makeText(login.this, "Username: "+ username.getText().toString() + "password: " + password.getText().toString(), Toast.LENGTH_LONG).show();
尝试过“登录。这是startActivity(i);”有一个“;”在.this之后应为'login.this.startActivity(i);'对不起,自动更正没问题!不,当我输入正确的详细信息并按下按钮时,仍然什么也不做@基肖尔_ZE@DeeMoMo请检查我编辑的答案,并让我知道你得到的结果。这将帮助我们了解错误所在。感谢在调用方法是可选的时使用“this”,我不知道它将如何解决问题。你为什么要求OP在logcat中打印用户名和密码?这有什么帮助?“不起作用”并没有说明代码出了什么问题。请改进描述,指出您的期望和发生的情况。