2010-09-15 3 views
0

J'ai elseif dans lequel je déclare le drapeau est faux et je déclaresur le projet Android

Resources r = getResources(); 
String refrigerant; 
String[] refrigerant1 = r.getStringArray(R.array.refrigerant); 

dans mon programme veulent définir l'indicateur = true mais ma boucle n'est pas exécuté et le drapeau reste faux pls donnent moi la solution.

Y at-il un problème dans la déclaration de tableau?

else if (ref_flg == true && ptflg == false) 
{ 
for (int i1 = 0; i1 < refrigerant1.length; i1++) 
{ 
    if (refrigerant == "") 
    { 
     if (et1.getText().toString()== refrigerant1[i1]) 
     { 
      flag = true; 
      System.out.println("flag"+flag); 

     } 
    } 
    else 
    { 
     if (refrigerant == refrigerant1[i1]) 
     { 
      System.out.println("refrigerant"+refrigerant); 
      flag = true; 
      System.out.println("flag"+flag); 
     } 
    } 
} 
if (flag == true) 
{ 
    if (refrigerant == "") 
    { 
     if (et1.getText().toString() != "") 
     { 
      refrigerant = et1.getText().toString(); 


     } 
    } 
    temp_flg = true; 

    et1.setText(""); 
} 
else 
{ 
    System.out.println("flag"+flag); 
    alertDialog.setTitle("Reset..."); 
    alertDialog.setMessage("Enter Valid REF"); 
    alertDialog.setButton2("OK", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int which) { 
      // here you can add functions 
      dialog.dismiss(); 
     } 
    }); 
    alertDialog.setIcon(R.drawable.icon); 
    alertDialog.show(); 
    ref_flg = false; 
} 
    } 

Répondre

1

Vous ne devriez jamais comparer les chaînes avec "==" car elles pourraient être des objets différents. Utilisez plutôt str.equals (otherStr) ou str.equalsIgnoreCase (otherStr). Si cela ne vous dérange pas les espaces de fuite, il est une bonne idée d'appeler trim() avant:

boolean equalStr(String str1, String str2) 
{ 
    if((str1 != null && str2 == null) || (str1 == null && str2 != null)) 
     return false; 

    if(str1 == null && str2 == null) 
     return true; 

    return str1.trim().equals(str2.trim()); 
} 
+0

09-15 17: 46: 42.065: INFO/System.out (302): réfrigérant [Ljava.lang.String; @ 43e65d40 – bindal

0

Utilisez toujours equals (...) pour l'égalité des tests. Cela s'applique à tous les objets (même les chaînes).

Questions connexes