2013-06-11 46 views
0

我有两个复选框和两个EditText。 CheckBox的OnClick使EditText消失并显示Toast "Your Information is Saved"。如果复选框被再次点击,另一个Toast将显示"Enter Your Email Address"。虽然它同时工作,两个Toast在一个单一的onClick之后依次显示。有任何想法吗?复选框出现太多吐司

on.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
    if (((CheckBox) v).isChecked()) 
     receiverEmail.setVisibility(View.GONE); 
    if (((CheckBox) v).isChecked()) 
     Toast.makeText(getApplicationContext(), 
     "Your Information is Saved", Toast.LENGTH_LONG).show(); 
    else 
     receiverEmail.setVisibility(View.VISIBLE); 
     Toast.makeText(getApplicationContext(), 
     "Enter Your Email Address", Toast.LENGTH_LONG).show(); 
    } 
}); 

on2.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
    if (((CheckBox) v).isChecked()) 
     clientID.setVisibility(View.GONE); 
    if (((CheckBox) v).isChecked()) 
     Toast.makeText(getApplicationContext(), 
     "Your Information is Saved", Toast.LENGTH_LONG).show(); 
    else 
     clientID.setVisibility(View.VISIBLE); 
     Toast.makeText(getApplicationContext(), 
     "Enter Your Email Address", Toast.LENGTH_LONG).show(); 
    } 
}); 

回答

1

您正在使用if/else循环错误。将您的setOnClickListener's更改为以下内容,并且应该可以正常工作...

on.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
    if (((CheckBox) v).isChecked()) { 
     receiverEmail.setVisibility(View.GONE); 
     Toast.makeText(getApplicationContext(), "Your Information is Saved", Toast.LENGTH_LONG).show(); 
    } else { 
     receiverEmail.setVisibility(View.VISIBLE); 
     Toast.makeText(getApplicationContext(), "Enter Your Email Address", Toast.LENGTH_LONG).show(); 
    } 
    } 
}); 

on2.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
    if (((CheckBox) v).isChecked()) { 
     clientID.setVisibility(View.GONE); 
     Toast.makeText(getApplicationContext(), "Your Information is Saved", Toast.LENGTH_LONG).show(); 
    } else { 
     clientID.setVisibility(View.VISIBLE); 
     Toast.makeText(getApplicationContext(), "Enter Your Email Address", Toast.LENGTH_LONG).show(); 
    } 
    } 
}); 
0

你忘了花括号的else报表后,如果CheckBox检查或不是最后Toast始终显示不管。

else语句看起来应该像这样:

else { 
    receiverEmail.setVisibility(View.VISIBLE); 
    Toast.makeText(getApplicationContext(), 
    "Enter Your Email Address", Toast.LENGTH_LONG).show(); 
    }}); 
} 

else { 
    clientID.setVisibility(View.VISIBLE); 
    Toast.makeText(getApplicationContext(), 
    "Enter Your Email Address", Toast.LENGTH_LONG).show(); 
    }}); 
} 

我总是包括每个之后的卷曲块的if/else避免这样的情况下,当压痕会欺骗你相信第二个陈述是if/else的一部分,当它不是时。