컨트롤에 의해 자동으로 생성 된 관련 함수에 대한 설명
일부 컨트롤은 관련 함수를 자동으로 생성합니다. 이러한 컨트롤에 의해 생성 된 관련 함수에 대한 구체적인 설명은 다음과 같습니다.
[!Note] 함수에서
XXXX
는 컨트롤 ID를 나타내므로 실제 프로세스에서 직접 수정하십시오.
Button control
버튼을 클릭하면 함수가 호출됩니다.static bool onButtonClick_XXXX(ZKButton *pButton) { return false; }
- 파라미터
ZKButton* pButton
은 클릭 한 버튼의 포인터입니다. 포인터의 멤버 함수를 통해 컨트롤에 대해 일련의 작업을 수행 할 수 있습니다. 이 포인터는 전역 변수mXXXXPtr
이 가리키는 객체와 동일한 객체입니다.
- 파라미터
Edit Text control
static void onEditTextChanged_XXXX(const std::string &text) { }
Edit box의 텍스트가 변경되면 시스템이 자동으로 이 함수를 호출합니다.
- 파라미터
std::string &text
현재 Input box의 전체 문자열입니다.
- 파라미터
Seek Bar control
static void onProgressChanged_XXXX(ZKSeekBar *pSeekBar, int progress) { }
Seek Bar의 현재 프로그래스 값이 변경되면 시스템이 자동으로 이 함수를 호출합니다.
- 파라미터
ZKSeekBar * pSeekBar
는 Seek Bar컨트롤의 포인터이며 포인터의 멤버 함수를 통해 컨트롤에서 일련의 작업을 수행 할 수 있습니다. - 파라미터
int progress
는 현재 Seek Bar의 프로그래스 값입니다.
- 파라미터
Slide Window control
static void onSlideItemClick_XXXX(ZKSlideWindow *pSlideWindow, int index) { }
Slide Window컨트롤에서 아이콘을 클릭하면 시스템이 자동으로 이 함수를 호출합니다.
- 파라미터
ZKSlideWindow * pSlideWindow
는 Slide Window컨트롤의 포인터이며 포인터의 멤버 함수를 통해 컨트롤에 대해 일련의 작업을 수행 할 수 있습니다. - 파라미터
int index
는 현재 클릭 된 아이콘의 Index값입니다. 예를 들어 총 10개의 아이콘이 Slide Window에 추가되었다면 Index값의 범위는 [0, 9]입니다.
- 파라미터
List control
List컨트롤은 가장 복잡한 컨트롤이며 세 가지 관련 함수를 만듭니다. 많은 기능이 있지만 다음 단계에 따라가면 이해하기 매우 쉽습니다.
첫째, 시스템이 List컨트롤을 그리려면 얼마나 많은 아이템이 있는지 알아야합니다. 따라서 다음과 같은 관련 함수가 있습니다.
static int getListItemCount_XXXX(const ZKListView *pListView) { return 0; }
- 파라미터
const ZKListView * pListView
는 전역 변수mXXXXPtr
과 동일한 객체를 가리키는 List컨트롤의 포인터입니다. - 리턴 값은 정수로, List에 있는 아이템 수를 의미하며 필요에 따라 정의 할 수 있습니다.
- 파라미터
시스템이 그려야 할 아이템의 수를 알아도 각 아이템에 표시할 내용을 모를 경우 리스트를 그리기에는 충분하지 않습니다. 이를 위해 아래 함수가 제공되고, 제공된 함수가 아이템의 수 만큼 호출되어 각 아이템의 표시 내용을 설정합니다.
void obtainListItemData_XXXX(ZKListView *pListView, ZKListView::ZKListItem *pListItem, int index) { //pListItem->setText(index) }
- 파라미터
ZKListView * pListView
는 전역 변수mXXXXPtr
과 동일한 객체를 가리키는 List컨트롤의 포인터입니다. - 파라미터
ZKListView :: ZKListItem * pListItem
은 List Item의 포인터이며 UI파일의Item
에 해당합니다. 파라미터
int index
는 전체 List에서pListItem
의 Index값이며 특정 범위가 있습니다.예 :
getListItemCount_XXXX
함수의 반환 값이 10이면 이는 List에 10개의 Item이 있음을 의미합니다. 그러면index
의 범위는 [0, 9]이며, 이를 이용하여 현재 설정해야 할 List Item이 전체 List에서 어디에 있는지 알 수 있습니다. 이 함수에서는index
에 따라 각 List의 표시 내용을 개별적으로 설정할 수 있습니다.
예 : 함수에서 주석 처리 된 문은 다음을 의미합니다. 각 List Item은 해당 Index값을 텍스트로 표시합니다.
- 파라미터
Button컨트롤과 마찬가지로 List컨트롤에도 클릭 이벤트가 있고, Index값을 기준으로 현재 클릭 된 List Item을 판단합니다.
static void onListItemClick_XXXX(ZKListView *pListView, int index, int id) { //LOGD(" onListItemClick_ Listview1 !!!\n"); }
List컨트롤을 클릭하면 터치 좌표가 어떤 List Item에 속하는지 시스템이 결정하고 List Item의 인덱스 번호를 계산 한 후 자동으로 이 함수를 호출합니다.
- 파라미터
ZKListView * pListView
는 전역 변수mXXXXPtr
과 동일한 객체를 가리키는 List 컨트롤의 포인터입니다. 파라미터
int index
는 전체 List컨트롤에서 현재 클릭 된 List Item의 Index값입니다.파라미터
int id
는 현재 클릭 된 컨트롤의 ID입니다. 이 ID는 속성 창의 ID와 다릅니다. 이에 대한 매크로는 해당Activity.h
파일에 정의되어 있습니다. 예를 들어mainActivity.h
에서
이 id의 기능은 List Item에 여러 subItem이 있을 때 현재 클릭 된 subItem을 구별하는 데 사용할 수 있다는 것입니다.
예 : 아래 그림과 같이 List Item에 두 개의 subItem을 추가하고 스위치 버튼으로 그림을 추가했습니다. 속성 ID는 각각SubItem1
및SubItem2
입니다.SubItem1
을 클릭하면id
와ID_MAIN_SubItem1
,ID_MAIN_SubItem2
의 관계를 판단하여 어떤 스위치를 클릭했는지 확인할 수 있습니다.예제 코드 :
static void onListItemClick_XXXX(ZKListView *pListView, int index, int id) { //LOGD(" onListItemClick_ Listview1 !!!\n"); switch(id) { case ID_MAIN_SubItem1: //LOGD("Clicked the first subitem of item %d in the list", index); break; case ID_MAIN_SubItem2: //LOGD("Clicked the second subitem of item %d in the list", index); break; } }
- 파라미터