如何使用 kivy 从动态添加的小部件转发信息?

How can I pass an information forward from a dynamically added widget with kivy?

我正在从 API 端点取回数据,我用它来填充 ThreeLineListItem 小部件。问题是我仍然找不到像下面的例子那样传递 person['id'] 的方法:

                [...]
                data = response.json() #response from an API request
                if response.status_code == 200:
                    for person in data:
                        print(person['id'])
                        self.ids.person_mdlist.add_widget(
                            ThreeLineListItem(
                                text=str(person['name']),
                                secondary_text=str(person['document']),
                                tertiary_text=str(person['descript']),
                                on_release=lambda x: self.test(x),
                                        ),)

我的计划是为将来 API 调用获取选定的人员 ID。有简单的方法吗?

我做到了! 由于 ThreeLineListItem 没有任何 'id' 属性,我不得不基于它创建一个自定义小部件:

class CustomThreeLineListItem(ThreeLineListItem):
    list_id = NumericProperty(0)

然后:

[...]
                data = response.json() #response from an API request
                if response.status_code == 200:
                    for person in data:
                        print(person['id'])
                        self.ids.person_mdlist.add_widget(
                            CustomThreeLineListItem(
                                list_id=person['id'],
                                text=str(person['name']),
                                secondary_text=str(person['document']),
                                tertiary_text=str(person['descript']),
                                on_release=lambda x: self.test(x),
                                        ),)

希望对以后的人有所帮助。