2017-01-16 56 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(); 
        } 
    
    }