2011-12-14 77 views
1

我正在尋找在數據驅動中包含預構建的數據網格控件,以便以表格形式顯示數據,就像我們在桌面或Web應用程序中一樣。我知道,有這樣的替代方法,就像我們在這裏: How to create a DataGrid display in android?是否有任何數據網格控件可用於Android?

任何其他好的替代?

+0

這裏是一個Android本地DataGrid組件 http://www.androidjetpack.com/Home/AndroidDataGrid – 2014-08-24 03:11:51

回答

1

我寫了一個。它支持圖像按鈕,文本視圖和編輯文本。點擊列標題將對數據進行排序。另外一列可以設置爲可點擊。如果有興趣,我可以向您發送我的代碼。

這是使用代碼的示例佈局文件。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
xmlns:tg="http://schemas.android.com/apk/res/com.ra.music" 
xmlns:pc="http://schemas.android.com/apk/res/com.ra.music" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" 
tools:context=".MusicActivity" > 

<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/music_header" /> 

<com.ra.playercontrol.PlayerControl 
    android:id="@+id/player_control" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    pc:editSong="true" /> 

<ScrollView 
    android:id="@+id/table_scroll" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:isScrollContainer="true" 
    android:scrollbars="vertical|horizontal" > 

    <com.ra.tablegrid.TableGrid 
     android:id="@+id/music_table" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="@android:color/white" 
     android:stretchColumns="*" > 

     <com.ra.tablegrid.TableTextView 
      android:id="@+id/song_id" 
      tg:fieldName="song_id" 
      tg:keyField="true" 
      tg:visible="false" /> 

     <com.ra.tablegrid.TableImageButton 
      android:id="@+id/play_song" 
      android:src="@drawable/play_button_up" 
      tg:displayOrder="02" 
      tg:fieldName="play_song" 
      tg:down_src_table="@drawable/play_button_down" /> 

     <com.ra.tablegrid.TableImageButton 
      android:id="@+id/edit_song" 
      android:src="@drawable/edit_button_up" 
      tg:displayOrder="03" 
      tg:fieldName="edit_song" 
      tg:down_src_table="@drawable/edit_button_down" /> 

     <com.ra.tablegrid.TableImageButton 
      android:id="@+id/delete_song" 
      android:src="@drawable/delete_button_up" 
      tg:displayOrder="04" 
      tg:fieldName="delete_song" 
      tg:down_src_table="@drawable/delete_button_down" /> 

     <com.ra.tablegrid.TableTextView 
      android:id="@+id/song_name" 
      android:textSize="16sp" 
      tg:clickable="true" 
      tg:displayOrder="07" 
      tg:fieldName="song_name" 
      tg:sortable="true" 
      tg:fieldPercent="0.26" 
      tg:title="@string/song_name" /> 

     <com.ra.tablegrid.TableTextView 
      android:id="@+id/artist" 
      android:textSize="13sp" 
      tg:displayOrder="10" 
      tg:fieldName="artist" 
      tg:secondarySorts="song_name" 
      tg:sortable="true" 
      tg:fieldPercent="0.13" 
      tg:title="@string/artist" /> 

     <com.ra.tablegrid.TableTextView 
      android:id="@+id/cd_name" 
      android:textSize="13sp" 
      tg:displayOrder="15" 
      tg:fieldName="cd_name" 
      tg:secondarySorts="song_name" 
      tg:sortable="true" 
      tg:fieldPercent="0.14" 
      tg:title="@string/cd_name" /> 

     <com.ra.tablegrid.TableTextView 
      android:id="@+id/category" 
      android:textSize="13sp" 
      tg:displayOrder="20" 
      tg:fieldName="category" 
      tg:secondarySorts="qualifier1,qualifier2,song_name" 
      tg:sortable="true" 
      tg:fieldPercent="0.08" 
      tg:title="@string/category" /> 

     <com.ra.tablegrid.TableTextView 
      android:id="@+id/qualifier1" 
      android:textSize="13sp" 
      tg:displayOrder="25" 
      tg:fieldName="qualifier1" 
      tg:secondarySorts="qualifier2,song_name" 
      tg:sortable="true" 
      tg:fieldPercent="0.10" 
      tg:title="@string/qualifier1" /> 

     <com.ra.tablegrid.TableTextView 
      android:id="@+id/qualifier2" 
      android:textSize="13sp" 
      tg:displayOrder="30" 
      tg:fieldName="qualifier2" 
      tg:secondarySorts="song_name" 
      tg:sortable="true" 
      tg:fieldPercent="0.14" 
      tg:title="@string/qualifier2" /> 

     <com.ra.tablegrid.TableTextView 
      android:id="@+id/length" 
      android:textSize="13sp" 
      tg:displayOrder="35" 
      tg:fieldName="length" 
      tg:sortable="true" 
      tg:fieldPercent="0.08" 
      tg:title="@string/length" /> 
    </com.ra.tablegrid.TableGrid> 
</ScrollView> 

這裏是實現表一小段代碼片段。

mTableGrid.setInitialSort("song_name", true); 
    mTableGrid.setOnTableClickListener(new ITableClickListener() { 
     @Override 
     public void onTableClick(String columnName, String keyValue) { 
      MusicActivity.this.onTableClick(columnName, keyValue); 
     } 
    }); 


    private void populateTable(ArrayList<DisplaySong> displaySongs) { 
    mTableGrid.clearData(); 
    for (DisplaySong song : displaySongs) { 
     mTableGrid.addDataRow(createTableDataRow(song)); 
    } 
    mTableGrid.buildTable(); 
} 
+1

這將是很好在這裏分享你的代碼,讓更多的人可以從獲利。 – aphex 2013-03-08 22:07:19

相關問題