Я создал флажок динамически в макете таблицы. Мне нужен мой первый флажок, который должен быть включен в начале, а остальные из них не должны быть включены, тогда, если я нажму первый флажок, второй CB должен быть включен, а затем и дальше..
Создание таблицы с помощью флажка.
TableLayout ll = (TableLayout) findViewById(R.id.tablelayout22);
final TableRow tr = new TableRow(this);
LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
tr.setId(i);
tr.setLayoutParams(lp);
lp.setMargins(10, -10, 15, 5);
CheckBox feature1=new CheckBox(this);
feature1 = new CheckBox(this);
feature1.setId(i);
final TextView fin = new TextView(this);
fin.setLayoutParams(lp);
fin.setText(FinancialYear1);
tr.addView(feature1);
tr.addView(fin);
ll.addView(tr, new TableLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
OncheckChangedListener:
feature1.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
//......
}
else{
//......
}
если вы хотите, чтобы первый CB был истинным, вы должны добавить следующую треску:
boolean b = true;
feature1.setEnabled(b)
и со значением b
делать все, что вы хотите сделать,
и в продолжении, если сначала вы проверили в OncheckChangedListener
вы должны получить идентификатор CB и изменить другой CB со всеми, что вы хотите сделать
ОБНОВИТЬ /////
у вас есть все идентификатор, поэтому вы должны хранить его в каком-то списке или массиве, и когда пользователь нажимает один CB в for, вы делаете все, что хотите, я пишу для вас полукод:
for ( int i = 0 ; i < list.size ; i++)
{
if (!list.get(i).equal (id))
{
Checkbox ch = findViewByid(list.get(i);
/// do what you want to other checkbox
}
else
/// do what you want with checked CB
}
извините, потому что я не рядом с IDE, чтобы проверить свой код, извините за ошибку кода, я надеюсь, что это может помочь вам