kkwfggwfnh 发表于 2023-11-6 23:35:12

求助 我实在是想不通是哪里的问题

自己定义事件中给高级列表图片会不刷新显示,扫完码后滑动高级列表框才会显示


kkwfggwfnh 发表于 2023-11-6 23:36:34

文件里面有TXT描述问题

创世魂 发表于 2023-11-7 08:30:46

应该是解码结果 事件是多线程导致的。
改成下面这样试试。 这个事件改到主线程执行。



<火山程序 类型 = "通常" 版本 = 1 />

变量 结果 <类型 = 文本型>

方法 线程类_线程启动 <接收事件 类型 = 整数 注释 = "线程已经启动事件" 注释 = "注意: 此事件的处理方代码将在多线程环境下执行,必须处理好多线程冲突问题.">
参数 来源对象 <类型 = 线程类 注释 = "提供事件产生的具体来源对象">
参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
参数 用户对象1 <类型 = 对象类 注释 = "提供调用启动方法时所提供的第1个用户对象" @常量参数 = 真>
参数 用户对象2 <类型 = 对象类 注释 = "提供调用启动方法时所提供的第2个用户对象">
{
    如果 (标记值 == 1)
    {
      如果 (解码锁.已锁定 == 假)
      {
            解码锁.加锁 ()
      }
      变量 参数 <类型 = 华为解码图像参数类>
      参数.置多码解码 (假)
      参数.置解析扫码结果 (真)// 提高解码速度,但是最终结果将无法判断二维码类型,比如:无法判断二维码是否为wifi类型的二维码.
      参数.置扫描格式 (华为码类型.Code128条码)// 单独扫描二维码,进一步提高解码速度
      参数.置扫描方式 (真)
      变量 扫描结果1 <参考 类型 = 华为扫描结果>
      变量 结果数组 <类型 = "华为扫码结果类 []">
      变量 临时位图 <参考 类型 = 位图类>
      临时位图 = 位图类.从位图区域创建 ((位图类)用户对象1, (整数)DP到像素 (50), (整数)DP到像素 (20), (整数)DP到像素 (300), (整数)DP到像素 (70))
      扫描结果1 = 华为扫码类.解码 ((安卓窗口环境)用户对象2, 华为解码图像数据类.创建 (临时位图), 参数)
      如果 (扫描结果1 != 空对象)
      {
            结果数组 = 扫描结果1.取结果 ()
            如果 (结果数组 != 空对象 && 取数组成员数 (结果数组) > 0)
            {
                如果 (取文本长度 (结果数组 .取结果 ()) >= 9 && 取文本长度 (结果数组 .取结果 ()) <= 16)
                {
                  结果 = 结果数组 .取结果 ()
                  开始提交到主线程等待执行 ()
                  {
                        解码结果 ((位图类)用户对象1, 外部本对象 (解码类).结果)
                  }
                  结束提交到主线程等待执行 ()
                  {

                  }

                }
            }
      }
      如果 (解码锁.已锁定 == 真)
      {
            解码锁.解锁 ()
      }
    }
    返回 (0)
}

kkwfggwfnh 发表于 2023-11-7 19:34:36

创世魂 发表于 2023-11-7 08:30
应该是解码结果 事件是多线程导致的。
改成下面这样试试。 这个事件改到主线程执行。



感谢大神指点懂了一点点了
页: [1]
查看完整版本: 求助 我实在是想不通是哪里的问题