2011-01-30 12 views
15
login.setOnClickListener(new OnClickListener() { 

     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      if(username_text.getText().toString() == "admin" && 
        pass_text.getText().toString() == "password"){ 

       startActivityForResult(i, ACTIVITY_CREATE); 

      }else{ 
       Toast.makeText(gps_gui.this, "Your username or password is not correct! Please, insert again", 
         Toast.LENGTH_SHORT).show(); 
       clearEditText(); 
      } 
     } 

    }); 

Bunu kontrol etmeye çalışıyorum, koşuluma gitmediğini buldum.Dize GetText

+1

Önceki sorularınız için doğru cevapları kabul etmelisiniz. Kabul edildi olarak işaretlemek için bir cevabın yanındaki onay işaretini tıklayabilirsiniz. – kcoppock

+0

Hemen hemen aynı kesin testi yaptım - değerler olarak "admin" ve "password" kullanarak bile. Güzel! :) Bu soruyu sorduğun için teşekkürler! – aikeru

cevap

29

Java kullanırken, String.equals (String) yöntemini kullanarak Dizeleri karşılaştırmalısınız. == karşılaştırması, String nesne değerlerinin eşit olup olmadığını, şüphesiz bunlar olup olmadığını kontrol eder. size örnek değiştirmeye çalışın:

"admin".equals(username_text.getText().toString()) &&"password".equals(pass_text.getText().toString()) 

Onun da denetleniyor durumunda, ilk değerin dize değeri statik dize koymak için akıllı boş.

+0

Teşekkür ederim. büyük/küçük harfe duyarlı mı? – Yoo

+1

Bu, duyarsızdır. Bahsettiğim gibi, @msumaithri olarak bir alternatif olarak equalsIgnoreCase kullanabilirsiniz (şifreler ve kullanıcı isimleri için tavsiye etmese de) –

+0

sadece admin gibi ansi değeri ve şifre ansi değeri eklerseniz benim gibi naif için ekleniyor farklı ... – solti

3

Dizeleri karşılaştırmak için String sınıfının equals() yöntemini kullanın. Aşağıdaki linkler size daha fazla ayrıntı verecektir.

About equals(Object yourObj) method (CASE sensitive)

bunu harfe duyarlı değildir istiyorsanız equalsIgnoreCase (Dize yourStringObject) kullanılabilir!

İlgili konular