2017-01-16 82 views
0

下面提供的代码是登录逻辑,我的要求是在认证用户后,应显示敬酒,但我没有得到任何祝酒。 我无法追查此原因,任何帮助将非常有价值。Android登录页面无法正常工作

下面是我的代码

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> 

--Thanks!

回答

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()传递login_validation_result布尔方法,但没有用处,没有分配的值, 因此它将会是它的值,它的值将是每次false,因此我们只是从参数中删除了login_validation_result。 和你有实现这个方法将返回你想要的布尔值。所以只需将该值分配给login_validation_result即可。然后它会工作

+0

谢谢你真棒,工作。你还能告诉我们为什么我们没有任何争论吗? – Knattic

+0

@Knattic,新增说明 –

+0

感谢您的帮助。 – Knattic

0

我不明白 布尔login_validation(布尔值验证){} .....你在你的代码的方法

1.为什么要传递一个布尔变量在方法,虽然你没有在你的代码中使用该参数。

  • 这种方法有一个boolean返回类型和不使用该参数以及..
  • 任何我怎么给你你的期望的解决方案。改变你的这个方法,你的代码就可以运行你所期望的。

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