2016-11-09 11 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 ") и (активность андроид: имя =". DoisAtividade") в Manifest.xml. Но, когда я печатаю секретное имя пользователя и секретный проход, а затем нажмите кнопку «Ввод», следующее действие не то, что я хочу.

+0

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

ответ

0

Проблема немного в вашей, если заявление, Попробуйте это:

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

Я думаю, что "нома" и "проход" if is vipPass() true, это также validateData() true. так что «VIPUSER» и «987654321» также удовлетворяют условиям validateData(). –

+0

Имеют смысл, но попробуйте код и посмотрите мое редактирование. –

+0

Просто поставьте vippass() сначала, что validatedata(), в выражении if. –

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

 Смежные вопросы

  • Нет связанных вопросов^_^