admin 发表于 2020-5-27 22:07:03

B4A 自定义返回为 Bitmap 类型的函数报错:Resumable subs return type must be ResumableSub (or none)

我们先来看下具体报错:


经反复修改代码最终达到要求:
Sub Globals
        'These global variables will be redeclared each time the activity is created.
        'These variables can only be accessed from this module.
       
        '例程说明:ListView控件加载本地图片及网络图片
       
        '定义 ListView1 变量
        Private ListView1 As ListView
        'Private Label1 As Label
       
        Private url As String = "https://www.wgbcw.com/data/attachment/common/e3/common_34_icon.png"
End Sub

Sub Activity_Create(FirstTime As Boolean)
        'Do not forget to load the layout file created with the visual designer. For example:
        'Activity.LoadLayout("Layout1")
       
        '加载布局
        Activity.LoadLayout("LayListView")
       
        '设置ListView1控件的属性
        '默认方式
        ListView1.Left = 0
        ListView1.Top= 0
        ListView1.Width = 100%x '宽设置为屏幕宽
        ListView1.Height = 200dip
        ListView1.AddSingleLine("ListView 单行文字演示")
        'ListView1.Color = Colors.Blue
        ListView1.AddSingleLine2("ListView 单行文字演示二",1)
        ListView1.AddTwoLines("ListView 两行文字演示第一行","ListView 两行文字演示第二行")
        ListView1.Height = 360dip
        ListView1.AddTwoLines2("ListView 两行文字演示二第一行","ListView 两行文字演示二第二行",2)
        ListView1.AddTwoLinesAndBitmap("ListView 控件使用例程第一行","ListView 两行文字带图片第二行默认一",LoadBitmap(File.DirAssets, "BFSoft.png"))
        ListView1.AddTwoLinesAndBitmap2("ListView 控件使用例程第一行","ListView 两行文字带图片第二行默认二",LoadBitmap(File.DirAssets, "BFSoft.png"),3)
       

'        '加载网络图片,必须添加 OkHttpUtils2 类库
'        Dim job As HttpJob
'
'        Dim Url As String = "https://www.wgbcw.com/data/attachment/common/e3/common_34_icon.png"
'       
'        job.Initialize("",Me)
'        job.Download(Url)
'        Wait For (job) JobDone(job As HttpJob)
'        If job.Success Then
'                'ListView1.SetBackgroundImage(m_httpjob.GetBitmap)
'                ListView1.Height = 420dip
'                ListView1.AddTwoLinesAndBitmap("ListView 加载网络图片演示","第二行",job.GetBitmap)
'        End If
'        job.Release

        '把加载网页图片的用函数来实现
        Dim bitmap As ResumableSub = LoadImage(url)
        Wait for (bitmap) complete(Result As Bitmap)
        'ListView1.SetBackgroundImage(job.GetBitmap)
        ListView1.Height = 420dip
        ListView1.AddTwoLinesAndBitmap("ListView 加载网络图片演示","第二行",Result)
        'LoadImageTest
End Sub

'读取并加载网络图片函数
'Main - 82: Resumable subs return type must be ResumableSub (or none).
'Sub m_GetBitmap(Text1 As String) As Bitmap
Sub LoadImageTest
        'Dim obj As Object = LoadImmage(Text1)
        Dim bitmap As ResumableSub = LoadImage(url)
        Wait for (bitmap) complete(Result As Bitmap)
        Log(Result)
'        If obj <> Null Then
'                Dim bitmap As Bitmap = obj
'                Return bitmap
'        Else
'                Return Null
'        End If
End Sub
'Sub LoadImage(url As String) As Bitmap
Sub LoadImage(Text1 As String) As ResumableSub
        '加载网络图片,必须添加 OkHttpUtils2 类库
        Dim job As HttpJob

        job.Initialize("",Me)
        job.Download(Text1)
        Wait For (job) JobDone(job As HttpJob)
        If job.Success Then
                Dim bitamp As Bitmap = job.GetBitmap
               
                job.Release
                Return bitamp
               
        End If
        job.Release
        Return Null
End Sub

本打算自定义 LoadImage 函数来加载网页图片返回 Bitmap 后传参数给ListView1.AddTwoLinesAndBitmap的第三个参数,但几经周折都报错,最终的代码已经达到要求了……

页: [1]
查看完整版本: B4A 自定义返回为 Bitmap 类型的函数报错:Resumable subs return type must be ResumableSub (or none)