【问题标题】:Is there any Data Grid control available for android?是否有任何可用于 android 的 Data Grid 控件?
【发布时间】:2012-01-20 13:59:13
【问题描述】:

我正在寻找在数据驱动中包含一个预先构建的数据网格控件,以便像我们在桌面或 Web 应用程序中那样以表格形式显示数据。我知道还有其他可用的方法,就像我们在这里一样: How to create a DataGrid display in android?

还有其他好的替代品吗?

【问题讨论】:

标签: android datagrid


【解决方案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();
}

【讨论】:

  • 很高兴在这里分享你的代码,让更多的人从中受益。
  • 我很想查看您的代码。你可以在这里分享或发送到 maqsood_rahman@hotmail.com
  • 它可以使用一些文档和示例。我是为自己的目的而写的,但如果人们觉得它有用,我可以充实它。
  • @Christopher 如果您可以共享相同的示例/文档,那就太好了..
猜你喜欢
  • 2013-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-01
  • 2011-08-09
  • 2020-07-26
  • 1970-01-01
相关资源
最近更新 更多