【问题标题】:Getting a weird response from an OnItemClickHandler in Android Studio (Kotlin)从 Android Studio (Kotlin) 中的 OnItemClickHandler 获得奇怪的响应
【发布时间】:2022-01-18 00:04:22
【问题描述】:

我正在 Android Studio 的 ListView 上实现 OnItemClickHandler。出于某种原因,当我显示所选项目时,我得到一个奇怪的字符串,而不是单击的项目的文本:

“com.skupad.skupadmobilekotlin.model.PendingStockOutListResponse@e3a35cc”

如果我单击列表视图中的另一个项目,@ 后面的值当然会改变。

索引 0 = "TEST100" 和索引 1 = "TEST1001" 中的值。

我不知道为什么它没有返回实际项目。有人可以帮忙吗?下面是我用来返回点击的项目的代码:

                lst_pending_stock_out_list_items.onItemClickListener =
                    OnItemClickListener { p0, p1, p2, p3 ->
                        val item = lst_pending_stock_out_list_items.adapter.getItem(p2).toString()
                        val itemValue = lst_pending_stock_out_list_items.getItemAtPosition(p2).toString()

                        txt_header.text = itemValue
                    }

我也试过了:

 val item = lst_pending_stock_out_list_items.adapter.getItem(p2).toString()

结果相同。

编辑:我想添加我加载数据的方式...

            // storing for later use
                pendingStockOutListArrayList = response.body()!!.result as ArrayList<PendingStockOutListResponse>?

                // initialize adapter
                baseAdapter =
                    PendingStockOutListBaseAdapter(context, R.layout.pending_stock_out_list_adapter_view_layout, pendingStockOutListArrayList)
                lst_pending_stock_out_list_items.adapter = baseAdapter

我要求的东西正在正确返回。

【问题讨论】:

    标签: android kotlin listview arraylist adapter


    【解决方案1】:

    看起来你有一个“PendingStockOutListResponse”模型,对吧?

    当你打电话时

    lst_pending_stock_out_list_items.adapter.getItem(p2).toString()
    

    您正在将整个对象转换为字符串。

    如果您想显示特定字段(假设您在“PendingStockOutListResponse”上有“名称”字段。

    你需要打电话

    lst_pending_stock_out_list_items.adapter.getItem(p2).name.toString()
    

    【讨论】:

    • @Felipe Oliviera ...感谢您的回复。是的,我确实有 2 个字段被返回并分配给数组列表,然后将其插入我的基本适配器。但是,当我尝试按照您所说的“附加”它时,我无法解析任何这些字段名称。
    【解决方案2】:

    感谢@Felipe Oliviera,我得以解决此问题。摆弄他的想法来附加字段名称......我做了以下事情:

                            if (itemValue != null) {
                                txt_header.text = itemValue.jobReference
                            }
    

    和“WALLA”...我现在可以看到实际值了。

    obrigado novamente Filipe!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多