2011-09-01 132 views
4

我想要在gridview中显示数据库中的数据。 意味着我在我的表中有一个数据(让它是客户的详细信息),我想在gridview(或任何其他控件显示细节)中显示它,就像我们在asp.net中完成的一样。在android中使用gridview从数据库中显示数据

解决方案: -

public void FillGrid() { 
    DatabaseHelper dbh = new DatabaseHelper(this); 
    dbh.openDataBase(); 
    Cursor cursor; 
    GridView grv = (GridView) findViewById(R.id.grvData); 
    cursor = dbh.getGridData(); 
    dbh.close(); 
    if (cursor != null) { 
     startManagingCursor(cursor); 

     SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, 
       R.layout.gridlayout, cursor, 
       new String[] { GridTestActivity.KEY_ROW_ID, GridTestActivity.KEY_ID, GridTestActivity.KEY_DESCRIPTION } 
       ,new int[] { R.id.txtGrv_id, R.id.txtGrvid, R.id.txtGrvDescription }); 
     adapter.setViewResource(R.layout.gridlayout); 
     grv.setAdapter(adapter); 
    } 

} 
+0

看来你试图模拟一个经典的数据感知网格,具有定义良好的列? –

回答

1

这是full example

另外,如果你的开始Android this将是一本适合你的好书。

+0

我想在gridview中显示一个表格格式的报告 –

0

您可以使用3列设置GridView。它会给你一个表格的样子。

OR

您可以使用自定义GridView控件的应用程序中使用以下类型代码..

customergrid.xml

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/tab1" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:orientation="vertical" > 

<GridView 
    android:id="@+id/grid" 
    android:layout_width="fill_parent" 
    android:layout_height="357dp" 
    android:numColumns="1" 
    android:stretchMode="columnWidth" /> 

<Button 
    android:id="@+id/cancel" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="cancel" /> 

</LinearLayout> 

而且,对于每一行使用自定义XML文件..

customerrow.xml

<?xml version="1.0" encoding="utf-8"?> 
<TableLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" > 
<TableRow> 
<TextView 
android:layout_width="50px" 
android:layout_height="wrap_content" 
android:id="@+id/row_ID" 
android:padding="5px" 
android:layout_weight="1" /> 
<TextView 
android:layout_width="50px" 
android:layout_height="wrap_content" 
android:id="@+id/key_ID" 
android:padding="5px" 
android:layout_weight="1" /> 
<TextView 
android:layout_width="50px" 
android:layout_height="wrap_content" 
android:id="@+id/key_Description" 
android:padding="5px" 
android:layout_weight="1" /> 
</TableRow> 
</TableLayout> 

在onCreate()方法使用customergrid.xml和使用customerrow.xml在网格创建等为您的代码..

public void FillGrid() { 
DatabaseHelper dbh = new DatabaseHelper(this); 
dbh.openDataBase(); 
Cursor cursor; 
GridView grv = (GridView) findViewById(R.id.grvData); 
cursor = dbh.getGridData(); 
dbh.close(); 
if (cursor != null) { 
    startManagingCursor(cursor); 

    SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, 
      R.layout.customerrow, cursor, new String[] { GridTestActivity.KEY_ROW_ID, 
      GridTestActivity.KEY_ID, GridTestActivity.KEY_DESCRIPTION }, new int[] { 
      R.id.txtGrv_id, R.id.txtGrvid, R.id.txtGrvDescription }); 
    adapter.setViewResource(R.layout.gridlayout); 
    grv.setAdapter(adapter); 
} 

} 

你可以在GridView控件从数据库中的数据现在。

+0

发布详细讨论的完整项目代码,它可能对我有帮助..我也在开发一个任务,用于从数据库获取数据,并使用警报框更新数据。如果您有任何想法与我分享,我会触发我的流程。 – MGR

相关问题