我正在尝试以编程方式向我的 TableLayout 添加一行。但它不可见。
这是我的代码:
// Get the TableLayout
TableLayout tl = (TableLayout) getActivity().findViewById(R.id.table_child_data_01);
TableRow tr = new TableRow(getActivity());
tr.setId(100);
tr.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));
// Create a TextView to house the name of the province
TextView labelTV = new TextView(getActivity());
labelTV.setId(200);
labelTV.setText("DynamicTV");
labelTV.setTextColor(Color.BLACK);
labelTV.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
tr.addView(labelTV);
// Create a TextView to house the value of the after-tax income
TextView valueTV = new TextView(getActivity());
valueTV.setId(300);
valueTV.setText("$0");
valueTV.setTextColor(Color.BLACK);
valueTV.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
tr.addView(valueTV);
// Create a TextView to house the value of the after-tax income
TextView valueTV2 = new TextView(getActivity());
valueTV2.setId(400);
valueTV2.setText("00");
valueTV2.setTextColor(Color.BLACK);
valueTV2.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
tr.addView(valueTV2);
// Add the TableRow to the TableLayout
tl.addView(tr, new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
Utilities.ShowToastMsg(getActivity(), "Row added");
我错过了什么吗?
我使用getActivity()
而不是this
因为上面的代码在 Fragment 而不是 Activity 中。
编辑:
在其他两个具有相同问题的线程中,我找到了以下解决方案:
使用import TableRow.LayoutParams.MATCH_PARENT;
代替import android.view.ViewGroup.LayoutParams;
在为 TableRow tr 设置布局参数时使用TableRow.LayoutParams.MATCH_PARENT
而不是。LayoutParams.MATCH_PARENT
但以上都不适合我。