首先,我知道我可以很容易地获得登录屏幕的源代码,我甚至可以这样做。但是这里的问题是我一直试图弄清楚我在代码上的错误2天,所以我有点“沮丧”。那是:
我正在尝试将登录屏幕集成到我的应用程序中,并设置一个条件,只允许特定的电子邮件和密码登录该应用程序。问题可能出在onCreate方法的if-else条件中。如果效果很好,我可以使用该特定的电子邮件和密码登录,但是当我输入无效信息时,应用程序会在一个点之后冻结并崩溃。我甚至没有收到我写的错误信息。请注意,我已经尝试对while循环使用boolean x = false / true,但仍然无法正常工作。真的很感激任何帮助。提前谢谢。
public Button loginButton;
private EditText emailText;
private EditText passwordText;
private TextView errorView;
private String x = "go";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
loginButton = (Button) findViewById(R.id.loginButton);
errorView = (TextView) findViewById(R.id.errorView);
loginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
while (x.equals("go")) {
emailText = (EditText) findViewById(R.id.emailText);
passwordText = (EditText) findViewById(R.id.passwordText);
if (emailText.getText().toString().equals("meric.erler@metu.edu.tr")
&& passwordText.getText().toString().equals("meric1234")) {
x = "return";
} else {
errorView.setText("Invalid E-mail or Password.");
}
x.equals("go");
}
String email = emailText.getText().toString();
startData(email);
}
});
}
//probably irrelevant after this point
public void startData(String email) {
Intent intent = new Intent(LoginActivity.this, DataActivity.class);
intent.putExtra("email", email);
startActivity(intent);
}
答案 0 :(得分:1)
这应该可行,但我没有编译它来测试它。
loginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
emailText = (EditText) findViewById(R.id.emailText);
passwordText = (EditText) findViewById(R.id.passwordText);
String email = emailText.getText().toString();
if (email.equals("meric.erler@metu.edu.tr")
&& passwordText.getText().toString().equals("meric1234")) {
startData(email);
} else {
errorView.setText("Invalid E-mail or Password.");
}
}
});