Android - 如何在动态添加的 LinearLayouts 中获取 CheckBoxes 的选中状态?
Android - How to get checked state of CheckBoxes in dynamically added LinearLayouts?
我想知道,我有一个垂直的 LinearLayout,我可以在其中动态添加水平的 LinearLayout。每个水平 LinearLayout 都包含一个 CheckBox。我想知道,如何在每个动态添加的 LinearLayout 中检索每个 CheckBox 的选中状态?
for (int i = 0; i < array.size(); i++) {
LayoutInflater layoutInflater = (LayoutInflater)
this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout testView = (LinearLayout) layoutInflater.inflate(R.layout.balance_test_layout, null);
for (int j = 0; j < customConditions.size(); j++) {
TextView checkView = new TextView(BalanceActivity.this);
checkView.setPadding(padding, padding, padding, padding);
checkView.setTextSize(20);
checkView.setGravity(Gravity.CENTER);
LinearLayout.LayoutParams checkTextParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, Math.round(TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 45, getResources().getDisplayMetrics())));
checkTextParams.gravity = Gravity.CENTER;
checkView.setLayoutParams(checkTextParams);
testView.addView(checkView);
}
CheckBox option = (CheckBox) testView.findViewById(R.id.testCheckBox);
option.setId(i);
option.setText(array.get(i));
//code for of rest of LinearLayout
}
okButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//need to get values of CheckBoxes in here
}
});
我想通了:
okButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
for (int i = 0; i < testDialogLayout.getChildCount(); i++) {
View innerView = testDialogLayout.getChildAt(i);
if (innerView instanceof LinearLayout) {
LinearLayout linearLayout = (LinearLayout) innerView;
CheckBox cb = (CheckBox) linearLayout.findViewById(i);
//do something with cb
}
}
}
});
我想知道,我有一个垂直的 LinearLayout,我可以在其中动态添加水平的 LinearLayout。每个水平 LinearLayout 都包含一个 CheckBox。我想知道,如何在每个动态添加的 LinearLayout 中检索每个 CheckBox 的选中状态?
for (int i = 0; i < array.size(); i++) {
LayoutInflater layoutInflater = (LayoutInflater)
this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout testView = (LinearLayout) layoutInflater.inflate(R.layout.balance_test_layout, null);
for (int j = 0; j < customConditions.size(); j++) {
TextView checkView = new TextView(BalanceActivity.this);
checkView.setPadding(padding, padding, padding, padding);
checkView.setTextSize(20);
checkView.setGravity(Gravity.CENTER);
LinearLayout.LayoutParams checkTextParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, Math.round(TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 45, getResources().getDisplayMetrics())));
checkTextParams.gravity = Gravity.CENTER;
checkView.setLayoutParams(checkTextParams);
testView.addView(checkView);
}
CheckBox option = (CheckBox) testView.findViewById(R.id.testCheckBox);
option.setId(i);
option.setText(array.get(i));
//code for of rest of LinearLayout
}
okButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//need to get values of CheckBoxes in here
}
});
我想通了:
okButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
for (int i = 0; i < testDialogLayout.getChildCount(); i++) {
View innerView = testDialogLayout.getChildAt(i);
if (innerView instanceof LinearLayout) {
LinearLayout linearLayout = (LinearLayout) innerView;
CheckBox cb = (CheckBox) linearLayout.findViewById(i);
//do something with cb
}
}
}
});