2013-06-11 45 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的一部分,當它不是時。