Checkboxes 让 toast 多次出现的问题

我在程序中设置了两个 checkboxes 和两个 EditText。点击一个 CheckBox 时 EditText 消失,然后显示Toast ,"Your Information is Saved",如何再次点击 CheckBox时,另一个Toast 会显示"Enter Your Email Address"。两个toast在每次点击后都可以正常运行。这是什么原因?

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

if else 如果省略{}的话只会执行临近的一行代码,第二行是不会执行的,你的问题应该是因为else后执行一行代码receiverEmail.setVisibility(View.VISIBLE);,导致Toast.makeText(getApplicationContext(),
"Enter Your Email Address", Toast.LENGTH_LONG).show();无论如何都会执行的
楼主看下是不是因为这个。。。

if{} else{} 之间的大括号呢?

java基础问题 最好写代码的时候不要省略括号 一行也不要省略 这样能增加代码的可读性