2016-01-22 42 views
0

我是kivy的新手,我想从ListView(或其适配器)获取列表项。但我在任何地方都找不到任何例子。Kivy在ListView中访问项目

这里是一个示例代码,我想做什么:

from kivy.uix.listview import ListView 
from kivy.adapters.simplelistadapter import SimpleListAdapter 
from kivy.uix.label import Label 

list_adapter = SimpleListAdapter(data=[str(i) for i in range(10)],cls=Label) 
my_list = ListView(adapter=list_adapter) 

#How do I access and modify the Label items in my_list? 
#I tried list_adapter.get_view(index), but it does not seem to give me 
#access to the items themselves, just copies... 

对不起,如果我做一些明显的错误,但我仍然在学习kivy基础。

回答

1

您已创建data属性,其中包含数字从0到9的标签。可像任何列表list_adapter.data[0] = "test"一样访问它。


如果你想直接访问标签的物体,然后使用get_view功能:

class Test(App): 
    def build(self): 
     list_adapter = SimpleListAdapter(data=[str(i) for i in range(10)], cls=Label) 
     my_list = ListView(adapter=list_adapter) 
     list_adapter.data[0] = 'test' 
     for i in xrange(list_adapter.get_count()): 
      print 'object:', list_adapter.get_view(i), 
      print ', text:', list_adapter.get_view(i).text 
     return my_list 
+0

但是这给了我进入我原来的对象,而不是由ListAdapter创建的标签对象。 正如你所提到的,在我的例子中,list_adapter.data [0]会给我我的原始字符串,而不是使用此字符串生成的标签... – user1477337