How To Disable Checkbox When A Limit Is Reached In Android?
I have 15 CheckBox and I must to stuck user when he checks more than 5. I use the method OnCheckedChangeListener to know if an item is checked, but I don't know how to limit after
Solution 1:
you should use a other variable for counting number of checkboxs that checked
finalint count=0;
OnCheckedChangeListenerchecker=newOnCheckedChangeListener(){
@OverridepublicvoidonCheckedChanged(CompoundButton cb, boolean b) {
if(count == maxLimit && b){
cb.setChecked(false);
Toast.makeText(getApplicationContext(),
"Limit reached!!!", Toast.LENGTH_SHORT).show();
}elseif(b){
count++;
CharSequencemyCheck= tagsCheck[i].getText();
Toast.makeText(getApplicationContext(),
myCheck + " checked!",
Toast.LENGTH_SHORT)
.show();
}elseif(!b){
count--;
}
};
Solution 2:
I am not sure but something like this might help you. create a global count variable and every time a checkbox is checked, increase count by 1 and once count reaches max, disable further checks. Do something like this :
OnCheckedChangeListenerchecker=newOnCheckedChangeListener(){
@OverridepublicvoidonCheckedChanged(CompoundButton cb, boolean b) {
if(checkedCount == maxLimit){
// set to unchecked and return. there must be some method for that // like : setChecked(0) or some other method.return;
}
if(.isChecked()){
checkedCount++;
CharSequencemyCheck= tagsCheck[i].getText();
Toast.makeText(getApplicationContext(),
myCheck + " checked!",
Toast.LENGTH_SHORT)
.show();
}
}
};
Solution 3:
Try this.. Create int check = 0;
as global
OnCheckedChangeListenerchecker=newOnCheckedChangeListener(){
@OverridepublicvoidonCheckedChanged(CompoundButton cb, boolean b) {
if(isChecked)
{
check ++;
Toast.makeText(getApplicationContext(),
myCheck + " checked! " +buttonView.getText(),
Toast.LENGTH_SHORT)
.show();
}
else
{
check --;
Toast.makeText(getApplicationContext(),
myCheck + "Un checked! " +buttonView.getText(),
Toast.LENGTH_SHORT)
.show();
}
if(check >= 5)
{
Toast.makeText(getApplicationContext(),
myCheck + "Checked 5",
Toast.LENGTH_SHORT)
.show();
}
}
};
Solution 4:
Suppose You Have To Select Maximum 2 CheckBoxes Out OF 4 Then Following Code Is Useful:-
Checkbox[] CBA = newCheckBox[4];
int Count=0;
CBA[0]=findViewByID(R.id.C1);
CBA[1]=findViewByID(R.id.C2);
CBA[2]=findViewByID(R.id.C3);
CBA[3]=findViewByID(R.id.C4);
CBA[0].setOnCheckedChangeListener(newCompoundButton.OnCheckedChangeListener()
@OverridepublicvoidonCheckedChanged(CompoundButton compoundButton, boolean b) {
for(int i=0;i<CBA.length;i++)
if(CBA[i].isChecked)
{
Count++;
}
if(Count>2)
{
CBA[0].setCheck(false);
}
}
);
Do Same for Another 3 Checkbox You Can Also Do This By Using Checkchanged Listener To Whole Array(CBA[i].setOnCheckedChangeListener)............Hope It Will Be Useful
Post a Comment for "How To Disable Checkbox When A Limit Is Reached In Android?"