下面提供的代码是针对Login逻辑的,我的要求是在验证用户之后,应该显示toast,但我没有得到任何toast。 我无法追踪原因,任何帮助都非常有价值。
以下是我的代码
MainActivity.class
public class MainActivity extends AppCompatActivity {
private EditText name, username, e_mail;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void doreset(View v) {
EditText name, username, e_mail;
EditText password, re_enter_pass;
name = (EditText) findViewById(R.id.name);
username = (EditText) findViewById(R.id.userName);
password = (EditText) findViewById(R.id.password);
e_mail = (EditText) findViewById(R.id.e_mail);
name.setText("");
username.setText("");
password.setText("");
e_mail.setText("");
}
public void doSubmit(View view) {
boolean login_validation_result = false;
EditText name, username, e_mail;
EditText password, re_enter_pass;
name = (EditText) findViewById(R.id.name);
username = (EditText) findViewById(R.id.userName);
password = (EditText) findViewById(R.id.password);
e_mail = (EditText) findViewById(R.id.e_mail);
login_validation(login_validation_result);
if (login_validation_result==true){
Toast respond = new Toast(this);
respond.makeText(this, "Success ful", Toast.LENGTH_SHORT).show();
}
}
private boolean login_validation(boolean validation) {
Toast error = new Toast(this);
EditText name, username, e_mail;
EditText password, re_enter_pass;
name = (EditText) findViewById(R.id.name);
username = (EditText) findViewById(R.id.userName);
password = (EditText) findViewById(R.id.password);
e_mail = (EditText) findViewById(R.id.e_mail);
if ((name.getText().toString()) == "") {
error.makeText(this, "Please enter your name", Toast.LENGTH_SHORT).show();
return false;
} else if ((name.getText().toString().length()) < 2) {
error.makeText(this, "The name should have more than 2 letters", Toast.LENGTH_SHORT).show();
return false;
} else if ((username.getText().toString()) == "") {
error.makeText(this, "Please enter your username", Toast.LENGTH_SHORT).show();
return false;
} else if ((username.getText().toString().length()) < 4) {
error.makeText(this, "The username should have more than 4 letters", Toast.LENGTH_SHORT).show();
return false;
} else if ((e_mail.getText().toString()) == "") {
error.makeText(this, "Please enter your e-mail", Toast.LENGTH_SHORT).show();
return false;
} else if ((e_mail.getText().toString()).contains("@") == false) {
error.makeText(this, "Please enter a valid e-mail", Toast.LENGTH_SHORT).show();
return false;
} else if ((e_mail.getText().toString()).contains(".com") == false) {
error.makeText(this, "Please enter a valid e-mail", Toast.LENGTH_SHORT).show();
return false;
} else if ((password.getText().toString()) == "") {
error.makeText(this, "Please enter a password", Toast.LENGTH_SHORT).show();
return false;
} else if ((password.getText().toString()).length() < 6) {
error.makeText(this, "Password must contain more than 6 characters", Toast.LENGTH_SHORT).show();
return false;
} else {
return true;
}
}
}
这是xml -
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp"
tools:context="com.android.loginpagesample.MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Please Login To Continue:"
android:textSize="16sp"
android:textStyle="italic" />
<EditText
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Name"
android:inputType="textPersonName"
android:paddingTop="8dp" />
<EditText
android:id="@+id/userName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Username"
android:inputType="textPersonName"
android:paddingTop="8dp"
android:maxLength="10"/>
<EditText
android:id="@+id/e_mail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="E-Mail"
android:inputType="textEmailAddress"
android:paddingTop="8dp" />
<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Password"
android:inputType="textPassword"
android:paddingTop="8dp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center">
<Button
android:id="@+id/submit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Submit"
android:textColor="#fff"
android:onClick="doSubmit"/>
<Button
android:id="@+id/reset"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="RESET"
android:textColor="#fff"
android:onClick="doreset"/>
</LinearLayout>
</LinearLayout>
- 谢谢!
答案 0 :(得分:2)
你可以试试这个
吗?public void doSubmit(View view) {
boolean login_validation_result = false;
EditText name, username, e_mail;
EditText password, re_enter_pass;
name = (EditText) findViewById(R.id.name);
username = (EditText) findViewById(R.id.userName);
password = (EditText) findViewById(R.id.password);
e_mail = (EditText) findViewById(R.id.e_mail);
login_validation_result = login_validation();
if (login_validation_result==true){
Toast.makeText(this, "Success ful", Toast.LENGTH_SHORT).show();
}
}
并删除login_validation
private boolean login_validation() {
// your stuff here
}
<强>解释强>
据我所知,
login_validation_result
中传递了login_validation()
布尔值 方法,但没有使用它,没有赋值, 所以它会一如既往,每次都是false
。所以刚从论证中删除了login_validation_result
。 你有这个实现的方法会返回你想要的boolean。所以只需将该值分配给login_validation_result
即可。然后它会工作
答案 1 :(得分:0)
我不明白 boolean login_validation(布尔验证){},.....你的代码中的方法
1.为什么你在方法中传递一个布尔变量,尽管你没有在代码中使用该参数。
我是如何给你解决你的期望的。改变你的这个方法你的代码将按照你期望的方式工作。
public void doSubmit(View view) {
boolean login_validation_result = false;
EditText name, username, e_mail;
EditText password, re_enter_pass;
name = (EditText) findViewById(R.id.name);
username = (EditText) findViewById(R.id.userName);
password = (EditText) findViewById(R.id.password);
e_mail = (EditText) findViewById(R.id.e_mail);
login_validation_result = login_validation(false/true);
if (login_validation_result==true){
Toast respond = new Toast(this);
respond.makeText(this, "Success ful", Toast.LENGTH_SHORT).show();
}
}