2010-09-15 51 views
0

我在我宣布标志是假elseif的声明,我宣布约Android项目

Resources r = getResources(); 
String refrigerant; 
String[] refrigerant1 = r.getStringArray(R.array.refrigerant); 
在我的计划

要设置标志= true,但不执行我的for循环和标志仍然保持假 请给我解决方案。

在数组声明中有什么问题吗?

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

回答

1

您不应该比较字符串与“==”,因为它们可能是不同的对象。改为使用str.equals(otherStr)或str.equalsIgnoreCase(otherStr)。如果你不介意开头和结尾的空格这是一个好主意之前调用TRIM():

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):制冷剂[Ljava.lang.String; @ 43e65d40 – bindal 2010-09-15 12:20:27

0

始终使用测试平等.equals(...)。这适用于所有对象(即使是字符串)。