複数のチェックボックスとボタンがあります。チェックボックスがチェックされていない場合はボタンを無効にし、チェックされている場合はボタンを有効にするにはどうすればよいですか?
7 に答える
これで試してみてください、
Button mButton=(Button)findViewById( R.id.button01);
CheckBox mCheckBox= ( CheckBox ) findViewById( R.id.checkbox01);
mCheckBox.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
if ( isChecked )
{
mButton.setEnabled(true);
}else{
mButton.setEnabled(false);
}
}
});
そのビューに入るときは(XMLで)ボタンを無効にし、ユーザーがチェックボックスのいずれかを押すたびに1つのグローバル変数を管理します。たとえば、グローバルカウントが1より大きい場合は、そのアクティビティでボタンを有効にします。
ユーザーがチェックボックスをオンにしている場合はそれをインクリメントし、チェックボックスをオフにしている場合はカウンターを減らすようにグローバル変数を管理します。
コンセプトを理解していただければ幸いです。
基本的には、オンになっているチェックボックスの数を管理することがすべてです。1つ以上オンになっている場合はボタンを有効にし、そうでない場合は無効にします。
ボタンを有効または無効にする代わりに、ボタンにsetVisibility()メソッドを使用できます。次のように。
Button btn =(Button)findViewById( R.id.mybutton);
CheckBox checkBox= ( CheckBox ) findViewById( R.id.checkbox01);
mCheckBox.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
if ( isChecked )
{
btn.setVisibility(VISIBLE);
}
else{
btn.setVisibility(GONE);
}
}
});
この方法を使用すると、ビューの表示を設定できます。チェックボックスがチェックされている場合にのみボタンが表示され、そうでない場合はボタンが表示されません。機能するかどうかをお知らせください。
以下のコードを使用してボタンを無効にすることができます。
mBtn.setEnabled(false);
以下のコードを使用して後で有効にすることができます
mBtn.setEnabled(true);
mCheckbox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
mButton.setEnabled(isChecked);
}
});
それと同じくらい簡単です:)
このtermsAndConditionsCheckBox.setOnClickListener(new OnClickListener(){を試してください
@Override
public void onClick(View v) {
if (termsAndConditionsCheckBox.isChecked() && privacyPolicyCheckBox.isChecked()){
agreebutton.setEnabled(true);
agreebutton.setTextColor(getResources().getColor(android.R.color.white));
agreebutton.setBackgroundColor(getResources().getColor(android.R.color.holo_blue_light));
}
else {
agreebutton.setEnabled(false);
agreebutton.setTextColor(getResources().getColor(android.R.color.white));
agreebutton.setBackgroundColor(getResources().getColor(android.R.color.darker_gray));
}
}
});
privacyPolicyCheckBox.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (termsAndConditionsCheckBox.isChecked() && privacyPolicyCheckBox.isChecked()){
agreebutton.setEnabled(true);
agreebutton.setTextColor(getResources().getColor(android.R.color.white));
agreebutton.setBackgroundColor(getResources().getColor(android.R.color.holo_blue_light));
}
else {
agreebutton.setEnabled(false);
agreebutton.setTextColor(getResources().getColor(android.R.color.white));
agreebutton.setBackgroundColor(getResources().getColor(android.R.color.darker_gray));
}
}
});