关于android项目

时间:2010-09-15 11:42:13

标签: java android

我有elseif语句,其中我声明flag为false并且我声明了

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

在我的程序中想要设置flag = true但是我的for循环没有被执行,并且标志保持为false 请给我解决方案。

数组声明有什么问题吗?

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

2 个答案:

答案 0 :(得分: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());
}

答案 1 :(得分:0)

始终使用.equals(...)来测试相等性。这适用于所有对象(甚至是字符串)。