2016-03-25 24 views
0

Uygulamam için kilit ekranı uygulamaya çalışıyorum. Sayfa B'yeAndroid Uygulama Kilidi

I'v onun doğru gitmek başarısız oldu bu

int PIN = R.id.Txt_password; 
int pass = 4444; 
if (PIN == pass) { 


    //Selecting the button which is to be pressed 
    Button Btn_Submit = (Button) findViewById(R.id.Btn_Submit); 
    //Creates a listener for the button to react when it is pressed 
    Btn_Submit.setOnClickListener(new View.OnClickListener() { 
     //Gives the button instructions when it is pressed 
     @Override 
     public void onClick(View view) { 
      Intent startIntent = new Intent(getApplicationContext(), 
        Control_Screen.class); 
      startActivity(startIntent); 

     } 
    }); 
} else { 
    //Selecting the button which is to be pressed 
    Button Btn_Submit = (Button) findViewById(R.id.Btn_Submit); 
    //Creates a listener for the button to react when it is pressed 
    Btn_Submit.setOnClickListener(new View.OnClickListener() { 
     //Gives the button instructions when it is pressed 
     @Override 
     public void onClick(View view) { 
      Intent startIntent = new Intent(getApplicationContext(), 
        Password.class); 
      startActivity(startIntent); 
     } 
    }); 
} 

yazılı eğer

ben şifre yanlış gitmek sayfa A ise süreçtir düşünce ve.

Bu

Txt_password

için kod
<EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="numberPassword" 
     android:ems="10" 
     android:id="@+id/Txt_password" 
     android:layout_below="@+id/Lbl_EnterPassword" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="50dp" 
     android:text="4444" /> 

Ben şifreyi düşünüyorum sert kodlanmıştır 4444 olduğunu, ancak iv ki durum böyle değildir ve sorun olduğunu bir duygu var.

Bu hakkın yapılması için nasıl giderim?

Belki de kullanıcının parola alanına girdiği metni bir dizeye yerleştirmenin bir yolu var mı?

+0

Bunu gerçekleştirmeye çalıştığınız herhangi bir güvenlik avantajı sunmadığının farkında mısın? Çalışmıyor olmasının yanı sıra ... –

+0

Teşekkürler. Şu an için sadece bir şeyler yapmayı öğreniyorum. Güvenlik, daha sonra projede bir iştir. Yine tavsiye için teşekkürler. – Kie21

+0

Cevabımı düzenledim. Bir göz at. –

cevap

0

Sen EditText metnini alma değildir edecektir. Bunu yaparak yapabilirsiniz:

Şimdi karşılaştırma yapın.

int pass = 4444; 

if(pass == PASS) { 
    ... 
    ... 
} 

Ancak sizin de düğmeye onClickListener içine yapmanız gerekir. Sana gidiş daha iyi olacağını düşünüyorum

EditText passText = (EditText) findViewById(R.id.Txt_password); 
int PIN = Integer.valueOf(passText.getText().toString()); 

if (PIN == 4444) { 
    ... 
} 
+0

Bu çözüm, şifre doğru veya yanlış olmasına bakılmaksızın beni kontrol sayfasına götürür. Eğer benim if ifadem olabileceğini düşünerek haklı mıyım? Diğer tüm çözümler beni şifre yanlış sayfasına götürür. Ayrıca bu cevapları aşağı oy olarak işaretleyen ben değildim. – Kie21

+0

Düzenlenmiş cevaba bakınız. –

+0

Bu, sorunumu mükemmel bir şekilde sıraladı. Yardımınız için teşekkürler. Çok takdir edildi. – Kie21

0

Belki bunu yapmak mı istiyorsunuz?

EditText txtPassword = (EditText) findViewById(R.id.Txt_password); 
int PIN = Integer.parseInt(txtPassword.getText().toString()); 

if (PIN == 4444) { } 

R.id.Txt_password asla eşit 4444

0

Böyle değeri tamsayı EditText alanından metin almak ve bunu değiştirmek gerekir: Aşağıdaki referans kodu Bkz başka bir şekilde. Tüm düğme dinleyicisini değiştirmeyin ve yöntem çağrısının içinde anonim nesneler oluşturmayın. Bağlamı gerçek iş mantığınızdan ayırmaya ne dersin? Şunu bir düşünün:

public class YourFragment extends Fragment implements View.OnClickListener { 

    private Button Btn_Submit; 
    private EditText Txt_password; 

    private final PIN = 4444; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

     // inflate layout of fragment or set content if this is an activity 
     (...) 

     Btn_Submit = (Button) findViewById(R.id.Btn_Submit); 
     Btn_Submit.setOnClickListener(this); 

     Txt_password = (EditText) findViewById(R.id.Txt_password); 
    } 

    @Override 
    public void onClick(View v) { 
     // if you have multiple elements with click listeners in this fragment/activity, separate calls here. I'm assuming we get only the submit button here. 

     Integer input_pin = Integer.parseInt(Txt_password.getText()); 
     if (PIN == input_pin) { 
      Intent startIntent = new Intent(getApplicationContext(), Control_Screen.class); 
      startActivity(startIntent); 
     } 
     // if pin wrong, reset text field and optionally show the user a notification 
     Txt_password.setText(""); 
    } 
} 

sen, hatta daha temiz hale onSubmitPin() denilen bir yöntem haline onClick kadar tüm kodu koymak ve teslim tuşuna basıldığında onClick onu aramak istiyorsa.

0

:

Button Btn_Submit = (Button) findViewById(R.id.Btn_Submit); 

    //Creates a listener for the button to react when it is pressed 
    Btn_Submit.setOnClickListener(new View.OnClickListener() { 
     //Gives the button instructions when it is pressed 
     @Override 
     public void onClick(View view) { 
      EditText passwordText = (EditText) findViewById(R.id.Txt_password); 
      int pass = Integer.parseInt(passwordText.getText().toString()); 

      if(pass == 4444) { 
       Intent startIntent = new Intent(getApplicationContext(), Control_Screen.class); 
       startActivity(startIntent); 
      } 
      else { 
       Intent startIntent = new Intent(getApplicationContext(), Password.class); 
       startActivity(startIntent); 
    });