[英]android registration activity crash
I'm working on an app that requires an registration activty. 我正在开发需要注册活动的应用程序。 The problem i have is that whenever i leave more than 2 EditTexts empty my app crashes: this is the code i use for the registration activity:
我的问题是,每当我将两个以上的EditTexts留空时,我的应用就会崩溃:这是我用于注册活动的代码:
import android.app.AlertDialog;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class Register extends AppCompatActivity implements View.OnClickListener{
EditText etName, etAge, etUsername, etPassword;
Button bRegister;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
etName = (EditText) findViewById(R.id.etName);
etAge = (EditText) findViewById(R.id.etAge);
etUsername = (EditText) findViewById(R.id.etUsername);
etPassword = (EditText) findViewById(R.id.etPassword);
bRegister = (Button) findViewById(R.id.bRegister);
bRegister.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.bRegister:
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(Register.this);
String name = etName.getText().toString();
String username = etUsername.getText().toString();
String password = etPassword.getText().toString();
int age = Integer.parseInt(etAge.getText().toString());
if(!(name.trim().length()>0))
{
dialogBuilder.setMessage("Please enter your name");
dialogBuilder.setPositiveButton("Ok", null);
dialogBuilder.show();
break;
}
if(!(etAge.getText().toString().trim().length()>0) || age>120)
{
dialogBuilder.setMessage("Please enter your age");
dialogBuilder.setPositiveButton("Ok", null);
dialogBuilder.show();
break;
}
if(!(username.trim().length()>0))
{
dialogBuilder.setMessage("Please enter a username");
dialogBuilder.setPositiveButton("Ok", null);
dialogBuilder.show();
break;
}
if(!(password.trim().length()>0))
{
dialogBuilder.setMessage("Please enter a password");
dialogBuilder.setPositiveButton("Ok", null);
dialogBuilder.show();
break;
}
User user = new User(name, age, username, password);
registerUser(user);
break;
}
}
private void registerUser(User user) {
ServerRequests serverRequest = new ServerRequests(this);
serverRequest.storeUserDataInBackground(user, new GetUserCallback() {
@Override
public void done(User returnedUser) {
Intent loginIntent = new Intent(Register.this, LoginScreen.class);
startActivity(loginIntent);
}
});
}
} }
Maybe it is because every if-statement in your method gets called, whuch means that DialogBuilder will attempt to show the dialog each time.. 可能是因为方法中的每个if语句都被调用,这意味着DialogBuilder将尝试每次显示对话框。
try using: 尝试使用:
if(....) {
....
}
else if(....){
.....
}
else {
.....
}
FYI: 仅供参考:
break only breaks out of the enclosing
switch
,for
,while
ordo-while
construct.break仅
for
,while
或do-while
构造脱离封闭的switch
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.