求助,如何在listview里addheadview-Android开发问答
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求助,如何在listview里addheadview-Android开发问答相关的知识,希望对你有一定的参考价值。
参考技术A 在setAdapter之前 先调用addHeadView 就行了this.listView.addHeaderView(img);
this.listView.setAdapter(adapter);
不然会这个错: Cannot add header view to list -- setAdapter has already been called 参考技术B 直接调用addHeaderView就ok了啊
如何将数据库里的数据添加到listview中
有两种办法 一种是自动绑定 还有一种手动绑定Private Sub Form_Load()
On Error GoTo ErrProceed
Dim ObjConnTmp As New ADODB.Connection, DataSource As String
DataSource = "数据库名"
ObjConnTmp.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & DataSource & ";"
ObjConnTmp.Open
Dim ObjTmpRs As New ADODB.Recordset
Set ObjTmpRs.ActiveConnection = ObjConnTmp
ObjTmpRs.CursorType = adOpenDynamic
ObjTmpRs.LockType = adLockOptimistic \'设置游标类型
StrTmpSQL = "Select * from 数据库表名"
ObjTmpRs.Open StrTmpSQL
FrmMain.ListView1.View = lvwReport
FrmMain.ListView1.ColumnHeaders.Clear
Call ModListView.SubListViewHeader(FrmMain.ListView1, ObjRsTmp) \'加标题
FrmMain.ListView1.ListItems.Clear
Call ModListView.SubListViewListItem(FrmMain.ListView1, ObjRsTmp, "End") \'加内容
ObjRsTmp.Close: Set ObjRsTmp = Nothing
ObjConnTmp.Close: Set ObjConnTmp = Nothing
Exit Sub
ErrProceed:
MsgBox "程序发生错误,原因如下:" & vbCrLf & Err.Description
End Sub
Public Sub SubListViewHeader(ByVal ListViewName As ListView, ByVal ObjRs As ADODB.Recordset)
\'功能:将相应的记录的 标题加到ListView中去
Dim clmX As ColumnHeader
\'设置显示方式
\'ListViewName.View = lvwReport
\'要想显示出网格,请在属性/通用/网格行 设置
nCounter = ObjRs.Fields.Count - 1
\' Dim nWidthGroup() As Integer
\' ReDim Preserve nWidthGroup(nCounter)
Dim nWidthGroup(8) As Integer
k = 100
nWidthGroup(0) = k * 6 \'[编号]
nWidthGroup(1) = k * 30 \'[名称]
nWidthGroup(2) = k * 11 \'[大小]
nWidthGroup(3) = k * 8 \'[类型]
nWidthGroup(4) = k * 20 \'[修改日期]
nWidthGroup(5) = k * 20 \'[记录日期]
nWidthGroup(6) = k * 0 \'[文件]
For i = 0 To nCounter
nWidth = nWidthGroup(i)
Set clmX = ListViewName.ColumnHeaders.Add(, , ObjRs.Fields(i).Name, nWidth)
Select Case ObjRs.Fields(i).Name
Case "类型"
clmX.Alignment = lvwColumnCenter
Case "大小"
clmX.Alignment = lvwColumnRight
End Select
Next
End Sub
Public Sub SubListViewListItem(ByVal ListViewName As ListView, ByVal ObjRs As ADODB.Recordset, ByVal StrLocate As String)
\'功能:将相应的记录的 内容加到ListView中去
\'StrLocate 用来定位新加记录在原ListView中的相对位置 Begin,开头 End 结尾
Dim itmX As ListItem
\'设置显示方式
\'ListViewName.View = lvwReport
\'要想显示出网格,请在属性/通用/网格行 设置
\'加内容
If ObjRs.EOF And ObjRs.BOF Then Exit Sub
ObjRs.MoveFirst
Do Until ObjRs.EOF
If StrLocate = "End" Then
Set itmX = ListViewName.ListItems.Add(, , ObjRs(0))
Else
Set itmX = ListViewName.ListItems.Add(1, , ObjRs(0))
End If
\'向列表中加入数据
For i = 1 To ObjRs.Fields.Count - 1
StrSubItem = FunNullConvert(ObjRs(i))
Select Case ObjRs.Fields(i).Name
Case "大小" \'如果是文件大小,则格式化其显示方式为加上千分位
StrSubItem = Format(CLng(StrSubItem), "#,###")
Case "修改日期", "记录日期"
If StrSubItem <> "" Then StrSubItem = FormatDateTime(CDate(StrSubItem), vbGeneralDate)
End Select
itmX.SubItems(i) = CStr(StrSubItem)
Next i
ObjRs.MoveNext
Loop
End Sub 参考技术A 上面是手动的 还有一种自动的就是拖一个SqlDataSource 在拖一个listview
设置一下listview的数据源就好了 只要你的数据库表有主键 就能自动的实现添加删除和修改的功能
很简单好用的 参考技术B 怎么会没有啊 我就是用的vs2005啊 你看看你的工具栏有一个数据 里面就是各种绑定控件
还有你手动绑定类型不对 是因为你要把你数据库读数来的数据都加个.tostring()
就好了 因为listview的项都是string型的 你一个int的怎么能添加到她上面去 加tostring 就好了
以上是关于求助,如何在listview里addheadview-Android开发问答的主要内容,如果未能解决你的问题,请参考以下文章