2016-11-09 158 views
-1

我的代码的目标是:当我输入一个秘密的用户名和密码,然后按回车键,打开一个Activity3。否则,打开Activity2。这是我的代码:
package edcomp.terraraimoveis;秘密登录密码 - Android

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.support.design.widget.TextInputLayout; 
import android.view.KeyEvent; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.inputmethod.EditorInfo; 
import android.widget.AutoCompleteTextView; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 

public class Principal extends Activity implements OnClickListener { 

    // UI references. 
    private AutoCompleteTextView userName; 
    private EditText mPasswordView; 
    private TextInputLayout nameLayout; 
    private TextInputLayout passLayout; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_principal); 

     userName = (AutoCompleteTextView) findViewById(R.id.username); 
     //populateAutoComplete(); 
     mPasswordView = (EditText) findViewById(R.id.password); 
     nameLayout = (TextInputLayout) findViewById(R.id.namelayout); 
     passLayout = (TextInputLayout) findViewById(R.id.passlayout); 
     Button entrarBtn = (Button) findViewById(R.id.entrarbtn); 
     entrarBtn.setOnClickListener(this); 

    } 

    @Override 
    public void onClick(View view) { 

     if(validateData() == true){ 
      if(vipPass() == true){ 
       Intent myintent = new Intent(Principal.this, AdicionarCredenciais.class); 
       Principal.this.startActivity(myintent); 
      }else { 
       Intent myintent = new Intent(Principal.this, DoisAtividade.class); 
       Principal.this.startActivity(myintent); 
      } 
     } 
    } 

    public boolean validateData(){ 
     String nome = userName.getText().toString(); 
     String pass = mPasswordView.getText().toString(); 

     boolean result = true; 

     if(nome == null){ 
      nameLayout.setError(getString(R.string.error_invalid_name)); 
      result = false; 
     }else{ 
      nameLayout.setErrorEnabled(false); 
     } 

     if(pass == null || pass.length() < 8){ 
      passLayout.setError((getString(R.string.error_invalid_password))); 
     result = false; 
     } 
     return result; 
    } 

    public boolean vipPass() { 
     String nome = userName.getText().toString(); 
     String pass = mPasswordView.getText().toString(); 

     boolean vip_mode = false; 
     if (nome == "VIPUSER" && pass == "987654321") { 
      vip_mode = true; 
     } 
     return vip_mode; 
    } 
} 

我添加(活动机器人:名字= “AdicionarCredenciais ”)和:在manifest.xml文件(活动的android名=“。DoisAtividade”)。但是,当我输入秘密用户名和密码,然后按下Enter按钮,下一个活动就不是我想要的。

+0

https://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java – njzk2

回答

0

问题稍有是你的if语句中,试试这个:

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.support.design.widget.TextInputLayout; 
import android.view.KeyEvent; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.inputmethod.EditorInfo; 
import android.widget.AutoCompleteTextView; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 

public class Principal extends Activity implements OnClickListener { 

    // UI references. 
    private AutoCompleteTextView userName; 
    private EditText mPasswordView; 
    private TextInputLayout nameLayout; 
    private TextInputLayout passLayout; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_principal); 

     userName = (AutoCompleteTextView) findViewById(R.id.username); 
     //populateAutoComplete(); 
     mPasswordView = (EditText) findViewById(R.id.password); 
     nameLayout = (TextInputLayout) findViewById(R.id.namelayout); 
     passLayout = (TextInputLayout) findViewById(R.id.passlayout); 
     Button entrarBtn = (Button) findViewById(R.id.entrarbtn); 
     entrarBtn.setOnClickListener(this); 

    } 

    @Override 
    public void onClick(View view) { 

     if(validateData() == true){ 
          Intent myintent = new Intent(Principal.this, AdicionarCredenciais.class); 
       Principal.this.startActivity(myintent); 
      }else 
if(vipPass() == true){ 
       Intent myintent = new Intent(Principal.this, DoisAtividade.class); 
       Principal.this.startActivity(myintent); 
      } 
     } 
    } 

    public boolean validateData(){ 
     String nome = userName.getText().toString(); 
     String pass = mPasswordView.getText().toString(); 

     boolean result = true; 

     if(nome == null){ 
      nameLayout.setError(getString(R.string.error_invalid_name)); 
      result = false; 
     }else{ 
      nameLayout.setErrorEnabled(false); 
     } 

     if(pass == null || pass.length() < 8){ 
      passLayout.setError((getString(R.string.error_invalid_password))); 
     result = false; 
     } 
     return result; 
    } 

    public boolean vipPass() { 
     String nome = userName.getText().toString(); 
     String pass = mPasswordView.getText().toString(); 

     boolean vip_mode = false; 
     if (nome == "VIPUSER" && pass == "987654321") { 
      vip_mode = true; 
     } 
     return vip_mode; 
    } 
} 

方法2:

转到这两个活动,并检查你是否设置的内容以正确的布局,你可能对两个活动都使用了相同的布局。

+0

我认为 “诺姆” 和 “通行证”如果是vipPass()true,那么它也是一个validateData()。因此,“VIPUSER”和“987654321”也满足validateData()条件。 –

+0

有道理,但试试看看我的编辑。 –

+0

只需在if语句中将vippass()第一个validatedata()放入。 –

0

尝试使用此代码

public boolean vipPass() { 
     String nome = userName.getText().toString(); 
     String pass = mPasswordView.getText().toString(); 

     if (nome.equals("VIPUSER") && pass.equals("987654321")) { 
      return true; 
     } 
     return false; 
    }