Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Studio-登录页面不工作_Android_Android Studio - Fatal编程技术网

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 in
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();

尝试过“登录。这是startActivity(i);”有一个“;”在.this之后应为'login.this.startActivity(i);'对不起,自动更正没问题!不,当我输入正确的详细信息并按下按钮时,仍然什么也不做@基肖尔_ZE@DeeMoMo请检查我编辑的答案,并让我知道你得到的结果。这将帮助我们了解错误所在。感谢在调用方法是可选的时使用“this”,我不知道它将如何解决问题。你为什么要求OP在logcat中打印用户名和密码?这有什么帮助?“不起作用”并没有说明代码出了什么问题。请改进描述,指出您的期望和发生的情况。