动态表布局表行内容不起作用

问题描述 投票:-1回答:1

嗨,在下面的代码中,我正在实现动态表布局。动态添加的表行名也动态添加。

尝试将内容添加到行中,但是它将异常数组索引抛出绑定异常。

有人可以在我做错的地方帮助我

    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);
        }
java android android-tablelayout
1个回答
1
投票

ProductValues.length()返回不可达的值 4(13个之中)。

如果只有3个项目(falco,cs30,bs),则i的最大值为2,但根据例外情况,i等于3。

如果productValues =“ falco,cs30,bs”。调用productValues.length()返回13。您的数组没有13个项目。

您应该在for循环之前将split方法上移,并将其结果用作循环迭代器。

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);
}
© www.soinside.com 2019 - 2024. All rights reserved.