2013-07-19 204 views
-8

我的问题是,当我在if条件中使用多个语句时,如(pro.getSelectedItemPosition()!=0 && allmemb.getSelectedItemPosition()!=0),它会被检查,但如果我使用单个语句如(pro.getSelectedItemPosition()!=0),则不检查条件。if-else if语句在android中不能正常工作

String where = null; 

    if(pro.getSelectedItemPosition()!=0 && allmemb.getSelectedItemPosition()!=0) 
    { 
     where="PROJECT='"+pro.getSelectedItemPosition()+"' and ASSIGNED_BY='"+allmemb.getSelectedItemPosition()+"'"; 
    } 

    else if(pro.getSelectedItemPosition()!=0 && allmod.getSelectedItemPosition()!=0) 
    { 
     where="PROJECT='"+pro.getSelectedItemPosition()+"' and MODULE='"+allmod.getSelectedItem()+"'"; 
    } 
    else if(pro.getSelectedItemPosition()!=0 && allprio.getSelectedItemPosition()!=0) 
    { 
     where="PROJECT='"+pro.getSelectedItemPosition()+"' and PRIORITY='"+allprio.getSelectedItem()+"'"; 
    } 

    else if(pro.getSelectedItemPosition()!=0 && date.getTextSize()!=0) 
    { 
     where="PROJECT='"+pro.getSelectedItemPosition()+"' and T_DATE='"+date.getText().toString()+"'"; 
    } 
    else if(allmemb.getSelectedItemPosition()!=0 && allmod.getSelectedItemPosition()!=0) 
    { 
     where="ASSIGNED_BY='"+allmemb.getSelectedItemPosition()+"' and MODULE='"+allmod.getSelectedItem()+"'"; 
    } 
    else if(allmemb.getSelectedItemPosition()!=0 && allprio.getSelectedItemPosition()!=0) 
    { 
     where="ASSIGNED_BY='"+allmemb.getSelectedItemPosition()+"' and PRIORITY='"+allprio.getSelectedItem()+"'"; 
    } 
    else if(allmemb.getSelectedItemPosition()!=0 && date.getTextSize()!=0) 
    { 
     where="ASSIGNED_BY='"+allmemb.getSelectedItemPosition()+"' and T_DATE='"+date.getText().toString()+"'"; 
    } 
    else if(allmod.getSelectedItemPosition()!=0 && allprio.getSelectedItemPosition()!=0) 
    { 
     where="MODULE='"+allmod.getSelectedItem()+"' and PRIORITY='"+allprio.getSelectedItem()+"'"; 
    } 
    else if(allmod.getSelectedItemPosition()!=0 && date.getTextSize()!=0) 
    { 
     where="MODULE='"+allmod.getSelectedItem()+"' and T_DATE='"+date.getText().toString()+"'"; 
    } 
    else if(allprio.getSelectedItemPosition()!=0 && date.getTextSize()!=0) 
    { 
     where="PRIORITY='"+allprio.getSelectedItem()+"' and T_DATE='"+date.getText().toString()+"'"; 
    } 
    else if(date.getTextSize()!=0 && date1.getTextSize()!=0) 
    { 
     where="T_DATE between '"+date.getText().toString()+"' and '"+date1.getText().toString()+"'"; 

    } 
    else if(date.getTextSize()!=0) 
    { 

     where="T_DATE='"+date.getText().toString()+"'"; 
    } 
    else if(pro.getSelectedItemPosition()==0 && allmemb.getSelectedItemPosition()==0 && allmod.getSelectedItemPosition()==0 && 
      allprio.getSelectedItemPosition()==0 && date.getTextSize()==0 && date1.getTextSize()==0) 
    { 
     //Intent in=new Intent(getApplicationContext(),login.class); 
     //startActivity(in); 
     where="PROJECT='"+pro.getSelectedItemPosition()+"' and ASSIGNED_BY='"+allmemb.getSelectedItemPosition()+"' and MODULE='"+ 
     allmod.getSelectedItem()+"' and PRIORITY='"+allprio.getSelectedItem()+"' and T_DATE='"+date.getText().toString()+"'"; 
    }  
    else if(pro.getSelectedItemPosition()>0) 
    { 
     where="PROJECT='"+pro.getSelectedItemPosition()+"'"; 
    } 

    else if(allmemb.getSelectedItemPosition()!=0) 
    { 
     where="ASSIGNED_BY='"+allmemb.getSelectedItemPosition()+"'"; 
    } 
    else if(allmod.getSelectedItemPosition()!=0) 
    { 
     where="MODULE='"+allmod.getSelectedItem()+"'"; 
    }  

    else if(allprio.getSelectedItemPosition()!=0) 
    { 
     where="PRIORITY='"+allprio.getSelectedItem()+"'"; 
    } 

    else 
    { 
     //Toast.makeText(admin.this, "No Tasks to displays..... ", Toast.LENGTH_SHORT).show(); 
    } 

    Cursor cr6=sdb.query("TASK_DETAILS", new String[]{"USERID","ASSIGNED_BY","PROJECT","MODULE","PRIORITY","T_DATE","T_DESC","REMARKS"}, 
       where,null,null,null,null); 
+4

你想干什么?它实际上做了什么。 “不工作”非常模糊 – doctorlove

+0

我认为你没有做功课:) –

+0

你为什么需要这样做?这太可怕了,同意塔伦! – Shraddha

回答

0

如果其中一个& &的陈述是错误的,它不会检查其他条件,因为一个错误足以使条件成为假。

1

但是在第一个if-else开始之前的一个断点,调试它。可能是因为条件失败而导致其他内容不能进入。