在表视图中显示ResultSet

时间:2013-07-15 16:42:50

标签: android mysql tablelayout

我真的需要帮助 作为MySQL DB中的select查询的结果,我有一个ResultSet。如何在表格布局中显示?我已经为tableview设置了布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent" android:layout_height="fill_parent"
 android:orientation="vertical">

<EditText
    android:id="@+id/myFilter"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ems="10"
    android:hint="@string/some_hint" />
<TextView android:layout_width="fill_parent"
  android:layout_height="wrap_content" android:padding="10dp"
  android:text="@string/some_text" android:textSize="20sp" />
<TableLayout
 android:id="@+id/producttablelayout"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:dividerPadding="@dimen/activity_horizontal_margin"
 android:scrollbars="horizontal|vertical"
 android:showDividers="none|beginning|middle|end" >

 <TableRow
     android:id="@+id/tableRow1"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:gravity="top|bottom|left|right"
     android:paddingTop="@dimen/activity_horizontal_margin" >

     <TextView
         android:id="@+id/ttt1"
         android:text="Column 1"
         android:textAppearance="?android:attr/textAppearanceLarge" />

     <TextView
         android:id="@+id/ttt2"
         android:text="Column 12"
         android:textAppearance="?android:attr/textAppearanceLarge" />


 </TableRow>

 </TableLayout>

</LinearLayout>

我希望能够将ResultSet数据添加到其中。类似的东西:

    super.onCreate(savedInstanceState);
     String s = null;
    setContentView(R.layout.activity_list_all_products);
    // Show the Up button in the action bar.
    setupActionBar();
    context333=this;
    TableLayout myTable = (TableLayout)findViewById(R.id.producttablelayout);
    try
    {
    connect2 = DriverManager.getConnection(LogonActivity.url, LogonActivity.user, LogonActivity.password);
    statement2 = connect2.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, 
            ResultSet.CONCUR_READ_ONLY);
    preparedStatement2 = connect2.prepareStatement("select     article_code,article_desc from products limit 4");
    resultSet2=preparedStatement2.executeQuery();
   resultSet2.beforeFirst();

   while (resultSet2.next()) {
      how to add next record here to the table layout??

   }

请帮忙

1 个答案:

答案 0 :(得分:0)

您可以创建一个新的视图(似乎您使用TextView填充表行)并根据需要使用查询中的结果填充它们。然后,您可以使用构造函数(see the documentation)创建新的TableRow

使用以下方法将视图添加到表行实例:

tableRowInstance.addView(viewInstance);

然后以同样的方式将tableRow添加到tableLayout

myTable.addView(tableRowInstance)

TableLayouts和TableRows都是View的子类。您应该对ViewGroup,View以及它们的结构进行一些研究。 This link提供了很好的可视化效果。