Android登录页面无法正常工作

时间:2017-01-16 12:50:11

标签: java android

下面提供的代码是针对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>

- 谢谢!

2 个答案:

答案 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.为什么你在方法中传递一个布尔变量,尽管你没有在代码中使用该参数。

  1. 此方法具有布尔返回类型,您也没有使用该参数..
  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(false/true); 
        if (login_validation_result==true){
            Toast respond = new Toast(this);
            respond.makeText(this, "Success ful", Toast.LENGTH_SHORT).show();
        }
    
    }
    
相关问题