动态 table 布局 table 行内容无效
dynamic table layout table row content is not working
您好,在下面的代码中,我正在实现动态 table 布局。动态添加 table 行名称也动态添加。
尝试将内容添加到 rows.but 它抛出异常数组索引超出绑定异常。
谁能帮我看看我哪里做错了
java.lang.ArrayIndexOutOfBoundsException: length=3; index=3
代码
String productValues = listSalesStageOpportunity.get(position).getProductValue();
TableLayout stk = (TableLayout) customView.findViewById(R.id.tables);
TableRow tbrow0 = new TableRow(getContext());
TextView tv0 = new TextView(getContext());
tv0.setText(" Sl.No ");
tv0.setTextColor(Color.WHITE);
tbrow0.addView(tv0);
TextView tv1 = new TextView(getContext());
tv1.setText(" Item Name ");
tv1.setTextColor(Color.WHITE);
tbrow0.addView(tv1);
TextView tv2 = new TextView(getContext());
tv2.setText(" Unit Price ");
tv2.setTextColor(Color.WHITE);
tbrow0.addView(tv2);
TextView tv3 = new TextView(getContext());
tv3.setText(" Total ");
tv3.setTextColor(Color.WHITE);
tbrow0.addView(tv3);
stk.addView(tbrow0);
for (int i = 0; i < productValues.length(); i++) {
TableRow tbrow = new TableRow(getContext());
TextView t1v = new TextView(getContext());
String[] namesList = productValues.split(",");
t1v.setText(namesList[i]);//error
t1v.setTextColor(Color.WHITE);
t1v.setGravity(Gravity.CENTER);
tbrow.addView(t1v);
stk.addView(tbrow);
}
ProductValues.length() 正在返回无法访问的值 4(共 13 个)。
如果只有 3 个项目 (falco,cs30,bs),i 的最大值为 2,但 i 等于到 3 根据异常。
如果 productValues = "falco,cs30,bs"。调用 productValues.length() returns 13. 你的数组没有 13 个项目。
您应该将 split 方法向上移动到 for 循环之前,并将其结果用作循环迭代器。
String[] namesList = productValues.split(",");
for (int i = 0; i < namesList.length(); i++)
{
TableRow tbrow = new TableRow(getContext());
TextView t1v = new TextView(getContext());
t1v.setText(namesList[i]);
t1v.setTextColor(Color.WHITE);
t1v.setGravity(Gravity.CENTER);
tbrow.addView(t1v);
stk.addView(tbrow);
}
您好,在下面的代码中,我正在实现动态 table 布局。动态添加 table 行名称也动态添加。
尝试将内容添加到 rows.but 它抛出异常数组索引超出绑定异常。
谁能帮我看看我哪里做错了
java.lang.ArrayIndexOutOfBoundsException: length=3; index=3
代码
String productValues = listSalesStageOpportunity.get(position).getProductValue();
TableLayout stk = (TableLayout) customView.findViewById(R.id.tables);
TableRow tbrow0 = new TableRow(getContext());
TextView tv0 = new TextView(getContext());
tv0.setText(" Sl.No ");
tv0.setTextColor(Color.WHITE);
tbrow0.addView(tv0);
TextView tv1 = new TextView(getContext());
tv1.setText(" Item Name ");
tv1.setTextColor(Color.WHITE);
tbrow0.addView(tv1);
TextView tv2 = new TextView(getContext());
tv2.setText(" Unit Price ");
tv2.setTextColor(Color.WHITE);
tbrow0.addView(tv2);
TextView tv3 = new TextView(getContext());
tv3.setText(" Total ");
tv3.setTextColor(Color.WHITE);
tbrow0.addView(tv3);
stk.addView(tbrow0);
for (int i = 0; i < productValues.length(); i++) {
TableRow tbrow = new TableRow(getContext());
TextView t1v = new TextView(getContext());
String[] namesList = productValues.split(",");
t1v.setText(namesList[i]);//error
t1v.setTextColor(Color.WHITE);
t1v.setGravity(Gravity.CENTER);
tbrow.addView(t1v);
stk.addView(tbrow);
}
ProductValues.length() 正在返回无法访问的值 4(共 13 个)。
如果只有 3 个项目 (falco,cs30,bs),i 的最大值为 2,但 i 等于到 3 根据异常。
如果 productValues = "falco,cs30,bs"。调用 productValues.length() returns 13. 你的数组没有 13 个项目。
您应该将 split 方法向上移动到 for 循环之前,并将其结果用作循环迭代器。
String[] namesList = productValues.split(",");
for (int i = 0; i < namesList.length(); i++)
{
TableRow tbrow = new TableRow(getContext());
TextView t1v = new TextView(getContext());
t1v.setText(namesList[i]);
t1v.setTextColor(Color.WHITE);
t1v.setGravity(Gravity.CENTER);
tbrow.addView(t1v);
stk.addView(tbrow);
}