2011-01-30 10 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!