Naming ルール

UIファイルに追加したほとんどのコントロールは、コンパイル後の関連ポインタ変数とマクロIDが自動的に生成されます。

コントロールIDとポインタ変数の名前のためのNamingルール

ポインタ変数の名前は、それぞれ固定された小文字prepixm+IDの値+Ptrの三つのパートで構成されます。
IDで Textview1を持つコントロールを例に説明します。

Textview1

コンパイル後に生成されるポインタ変数の名前は、mTextview1Ptrです。

mTextview1Ptr

ポインタ変数のclassは、コントロールによって決定されます。各コントロールに対応するポインタclassは以下の通りです。(プロジェクトのjni/ includeフォルダで、各classのヘッダファイルを見つけることができます。)

Control name Class name
ZKQRCode
ZKEditText
ZKButton
ZKTextView
ZKSeekBar
ZKPointer
ZKCircleBar
ZKDigitalClock
ZKVideoView
ZKCameraView
ZKWindow
ZKListView
ZKSlideWindow
ZKDiagram

コントロールIDとmacro definitionのnamingルール

このmacro definitiondは、UIファイルでコントロールのマッピング関係を示します。 Macro definitionは、固定された大文字ID、大文字UIファイル名、コントロールID propertyの値の3つの部分で構成されます。
IDをTextview1と持つコントロールの例をみましょう。

Textview1

コンパイル後、生成されたmacro statementは #define ID_MAIN_TextView150001です。

[!Warning] Macro definitionの値を変更しないでください。非正常動作の原因になることがあります。

コントロールによって生成される関連関数

特定のコントロールは、関連付けられている関数を自動的に生成します。以下は、これらのコントロールによって自動的に生成された関数について説明します。

[!Note] 関数でXXXXは、コントロールのID値です。

  • Button コントロール

     static bool onButtonClick_XXXX(ZKButton *pButton) {
        return false;
     }
    

    ボタンがクリックされると呼び出される関数です。

    • パラメータZKButton* pButtonはクリックされたボタンのポインタであり、ポインタのメンバ変数を使用して、一連のoperationを行うことができます。このポインタは、グローバル変数mXXXXPtrが指すオブジェクトと同じオブジェクトのポインタです。
  • Edit Text コントロール

    static void onEditTextChanged_XXXX(const std::string &text) {
    
    }
    

    Input boxが変更されたとき、システムによって自動的に呼び出される関数です。

    • パラメータstd::string&textは、現在Input boxのcontentsです。
  • Seek Bar コントロール

    static void onProgressChanged_XXXX(ZKSeekBar *pSeekBar, int progress) {
    
    }
    

    Seek Barのプログレス値が変更されると、システムによって自動的に呼び出される関数です。

    • パラメータZKSeekBar* pSeekBarはSeek Barのポインタ変数であり、ポインタのメンバ変数を使用して、一連のoperationを行うことができます。
    • パラメータint progressは、現在Seek Barのプログラス値です。
  • Slide window コントロール

    static void onSlideItemClick_XXXX(ZKSlideWindow *pSlideWindow, int index) {
    
    }
    

    Slide windowコントロールのアイコンがクリックされたとき、システムによって自動的に呼び出される関数です。

    • パラメータZKSlideWindow* pSlideWindowはSlide windowコントロールのポインタ変数であり、ポインタのメンバ変数を使用して、一連のoperationを行うことができます。
    • パラメータint indexは、現在クリックされたアイコンのindex値です。たとえば、Slide windowに合計10個のアイコンを追加した場合index値の範囲は[0、9]です。
  • List コントロール

    リストコントロールは、最も複雑なコントロールで三つの関連関数を生成します。しかし、多くの関数がありますが、次の手順に従えば簡単に理解することができます。

    1. まず、もしシステムがリストコントロールを描画たい場合、どのように多くのアイテムがあるか知る必要があります。
      以下はそれに関連する関数です。

      static int getListItemCount_XXXX(const ZKListView *pListView) {
      
            return 0;
      }
      
      • パラメータconst ZKListView* pListViewはListコントロールのポインタであり、グローバル変数mXXXXPtrと同じオブジェクトを指します。
      • 戻り値は整数であり、リストにあるアイテムの数を示し、必要に応じて決定されます。
  1. システムがリストのアイテム数を知っているたが、これだけでリストを描画には不足して、各アイテムにどのようなコンテンツをピョヒすべきかも知っている。だから下の関数があります。表示するアイテムの数だけ下の関数が呼び出され、表示する内容を設定することになります。

      static void obtainListItemData_XXXX(ZKListView *pListView,ZKListView::ZKListItem *pListItem, int index) {
        //pListItem->setText(index)
    }
    
    • パラメータZKListView* pListViewはListコントロールのポインタであり、グローバル変数mXXXXPtrと同じオブジェクトを指します。

    • パラメータZKListView:: ZKListItem* pListItemは、リストアイテムのポインタであり、UIファイルのItemに対応します。

    • パラメータint indexは全体のリストからpListItemのindex値です。
      例: getListItemCount_XXXX関数の戻り値が10という意味ではリストに10個のアイテムがあり、index値の範囲が[0、9]ということです。
      pListItemindexを接続して、全体のリストから任意のアイテムを設定する必要があるか知ることができます。

    この関数ではindexに基づいて、各アイテムに表示されるコンテンツが設定されることがあります。

  2. ボタンコントロールと同様に、リストコントロールもクリックイベントのための関数を持っており、index値に基づいて、現在どのようなアイテムがクリックされたかを判断します。

    static void onListItemClick_XXXX(ZKListView *pListView, int index, int id) {
        //LOGD(" onListItemClick_ Listview1  !!!\n");
    }
    

    リストコントロールがクリックされると、システムは、クリックされた位置に対応するアイテムのindex値を計算して、自動的にこの関数を呼び出します。

    • パラメータZKListView* pListViewはListコントロールのポインタであり、グローバル変数mXXXXPtrと同じオブジェクトを指します。

    • パラメータint indexは全体のリストコントロールで現在クリックされたアイテムのindex値です。

    • パラメータint idは、現在クリックされたコントロールのIDです。このIDは、propertiesのIDと異なるので注意してください。

    これに対するmacro definitionは、対応するActivity.hファイルにあります。mainActivity.hを例に示します。

    このIDは、list itemに複数のsubitemがある場合は、現在クリックされたsubitemがどんなものかを区別するために使用することができます。
    例: 下の図に示すように、list itemにスイッチイメージが配置された2つのsubitemが追加されており、それぞれのproperty IDはSubItem1SubItem2です。SubItem1がクリックされたとき、パラメータidID_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;
       }
     }
    

最後に、図を用いて、それらの間のルールを要約してみましょう。

他のコントロールもこれと同じです。

powered by Gitbooklast modified: 2020-12-04 15:18:20

results matching ""

    No results matching ""