在动态创建 CheckBox 时,不会传输文本。我这样添加:
LinearLayout dynamic_task_fields;
for (int chIt = 0 ; chIt < chB.length(); chIt++) {
TableRow row =new TableRow(ctx);
row.setLayoutParams(new
TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT,
TableRow.LayoutParams.WRAP_CONTENT));
final CheckBox check = new CheckBox(ctx);
check.setButtonTintList(colorStateList);
JSONObject objCheck = null;
objCheck = chB.getJSONObject(chIt);
String OptionName = objCheck.getString("PropName");
String OptionDescription = objCheck.getString("Description");
Boolean Checked = objCheck.getBoolean("Value");
check.setId(chIt);
check.setTag(OptionName);
check.setText(OptionDescription);
check.setChecked(Checked);
if(completed)
{
check.setEnabled(false);
check.setTextColor(Color.BLACK);
}
try {
row.addView(check);
table.addView(row);
}
catch (Exception ex)
{
String err = ex.getMessage();
}
}
dynamic_task_fields.addView(table);
CheckBox 被添加到 TableRow,TableRow 被添加到 TableLayout。已经尝试了很多选项,转移它不起作用。请提示,可能有什么问题。
您
Checkbox应该使用布局参数创建 - 如下所示:但总的来说,这种纯粹的小部件编程方式有点反模式。
习惯上创建一个类型的小型 XML 资源(比如说 row.xml):
这已经在代码中动态“提升”(inflate):
PS我不能保证代码的准确性,一般的想法是 - 我不是编译器:)