2016-01-22 78 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