在Android Studio中动态生成并显示表格

时间:2016-01-22 08:32:37

标签: java android xml

我在Android上创建了我的第一个应用程序,因此我开发Android应用程序的经验很少,而且我也一直在使用java。

我想要什么? 我想从ArrayList

生成表

问题是什么? 我生成表时遇到问题。什么时候" for"循环完成调试器站在catch块中(但是当我鼠标悬停" e"它写入 - "局部变量e未定义"我无法读取某些错误)之后我看到在电话屏幕上 - "遗憾的是应用已关闭"

没有For循环会发生什么? 没有For循环,当我尝试只显示一个对象时,一切运行良好。

enter image description here

请帮助并给我建议,Thanx。

Hare是Java代码:

try {
    ArrayList<Persons> otherPersons = new ArrayList<Persons>();
    otherPerosons = GetPersonsList();//from service

                 //  /* Find Tablelayout defined in main.xml */
                TableLayout tl = (TableLayout) findViewById(R.id.dynamictable);

                TextView[] title = new TextView[1000];
                TableRow[] tr = new TableRow[1000];
                LinearLayout.LayoutParams trparams;
                LinearLayout.LayoutParams titleparams;

                for (int y=0; y < otherPersons.size(); y++) {
                    /* Create a new row to be added. */
                    tr[y] = new TableRow(this);
                    tr[y].setId(y+100);
                    tr[y].setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.MATCH_PARENT));
                    trparams = (LinearLayout.LayoutParams) tr[y].getLayoutParams();
                    trparams.setMargins(0, 8, 0, 5); //substitute parameters for left, top, right, bottom
                    tr[y].setLayoutParams(trparams);

                   /* Create a TextView to be the row-content. */
                    title[y] = new TextView(this);
                    title[y].setText(otherPersons.get(y).Name);
                    title[y].setId(y +200);
                    title[y].setTextColor(Color.parseColor("#000000"));
                    title[y].setGravity(Gravity.LEFT);
                    title[y].setLayoutParams(new TableLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, 34));
                    titleparams = (LinearLayout.LayoutParams) title[y].getLayoutParams();
                    titleparams.setMargins(5, 0, 0, 0); //substitute parameters for left, top, right, bottom
                    title[y].setLayoutParams(titleparams);


                    tr[y].addView(title[y]);

                  /* Add row to TableLayout. */

                  tl.addView(tr[y], new TableLayout.LayoutParams(TableLayout.LayoutParams.FILL_PARENT, TableLayout.LayoutParams.WRAP_CONTENT));
                }


             } catch (Exception e) {
                e.printStackTrace();
            }

Hare是我的设计XML:

 <TableLayout
                    android:id="@+id/dynamictable"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:shrinkColumns="*"
                    android:layout_alignParentTop="true"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentStart="true"
                    android:layout_marginTop="39dp"
                    android:stretchColumns="*"
                    android:background="#ffB224">


                </TableLayout>

1 个答案:

答案 0 :(得分:0)

我不知道答案,但尝试使用

将异常输出放在logcat输出中
try{

}catch(Exception e){
  Log.e("ClassName", e.toString());
}

也许您会看到有关该例外的更多信息。

您可以在此处找到有关Android Logging

的更多信息