## ZKListView 列表控件 ### 绑定数据 ~~~ // 继承ZKListView内部类AbsListAdapter接口,实现相应的回调函数,以下是回调接口的说明 class AbsListAdapter { // 数据项长度 virtual int getListItemCount(const ZKListView *pListView) const = 0; // 填充列表项数据 virtual void obtainListItemData(ZKListView *pListView, ZKListItem *pListItem, int index) = 0; }; // 设置数据适配器(该注册由UI Tool自动实现,开发人员只需关注对应cc文件里的回调接口) mListView1Ptr = (ZKListView *) findControlByID(ID_HELLO_LISTVIEW1); if (mListView1Ptr) { mListView1Ptr->setListAdapter(this); } ~~~ 对应cc文件里的回调接口: ~~~ static int getListItemCount_ListView_1(const ZKListView *pListView) { // LOGD(" ListView ListView_1 getListItemCount !!!\n"); return 0; } static void obtainListItemData_ListView_1(ZKListView *pListView, ZKListView::ZKListItem *pListItem, int index) { // LOGD(" ListView ListView_1 obtainListItemData !!!\n"); } ~~~ 设置完适配器后,如果数据有更新,调用: ~~~ // 通知数据更新,刷新UI if (mListView1Ptr) { mListView1Ptr->refreshListView(); } ~~~ ### 列表项监听 ~~~ // 接口说明 class IItemClickListener { public: // index: 点击项索引 itemID: 点击项ID virtual void onItemClick(ZKListView *pListView, int index, int itemID) = 0; }; // 设置监听器(该注册由UI Tool自动实现,开发人员只需关注对应cc文件里的回调接口) mListView1Ptr = (ZKListView *) findControlByID(ID_HELLO_LISTVIEW1); if (mListView1Ptr) { mListView1Ptr->setItemClickListener(this); } ~~~ 对应cc文件里的回调接口: ~~~ static void onListItemClick_ListView_1(ZKListView *pListView, int index, int id) { // LOGD(" ListView ListView_1 onListItemClick !!!\n"); } ~~~