1

私は現在、TableView a にデータバインドしています。以下はコードです。

<Alloy>
    <TableViewRow backgroundColor="{background}" id="businessRow">
        <Label id="st1" class="ribbonIcon1" color="{highlight1}" text="{st1}"/>
        <Label id="st2" class="ribbonIcon2" color="{highlight2}" text="{st2}"/>
        <Label id="st3" class="ribbonIcon3" color="{highlight3}" text="{st3}"/>
        <Label id="st4" class="ribbonIcon4" color="{highlight4}" text="{st4}"/>
        <Label id="st5" class="ribbonIcon5" color="{highlight5}" text="{st5}"/>
    </TableViewRow>
</Alloy>

各ラベルは、 によって定義されているアイコン フォントです{st1}。合字を参照する icomoon フォントを使用しているので、それに応じてアイコンを変更できます。このテストでは、チェックボックスのフォント アイコンを使用しています。

次に、datatransform を実行して、ビジネスが関連付けられているアイコンを青色で強調表示し、そうでない場合は SQLite データベース (DeQuery) から取得したアイコンを灰色で強調表示します。

SQL スニペットと関数

...COUNT(BusinessSites.BusinessID) AS Bqty, sum(case when     Services.ServiceID = "1" then 1 else 0 end) ST1, sum(case when Services.ServiceID = "2" then 1 else 0 end) ST2, sum(case when Services.ServiceID = "3" then 1 else 0 end) ST3, sum(case when Services.ServiceID = "4" then 1 else 0 end) ST4, sum(case when Services.ServiceID = "5" then 1  else 0 end) ST5 FROM...



    function DescOrder(){
        Junctions.fetch({query:DesQuery});
        Junctions.setSortField("display_order", "DESC");
        Junctions.sort();
        transformJunctionList(Junctions);
        toggleOrder = "DESC";
    }

function AscOrder(){
    Junctions.fetch({query:DesQuery});
    Junctions.setSortField("display_order", "ASC");
    Junctions.sort();
    transformJunctionList(Junctions);
    toggleOrder = "ASC";
}

function transformJunctionList(model) {
    var transform = model.toJSON();
                transform.st1 = "checkbox";
                transform.ST1 > "0" ? transform.highlight1 = "#4993cc" : transform.highlight1 = "#ebe9e9";
                transform.st2 = "checkbox";
                transform.ST2 > "0" ? transform.highlight2 = "#4993cc" : transform.highlight2 = "#ebe9e9";
                transform.st3 = "checkbox";
                transform.ST3 > "0" ? transform.highlight3 = "#4993cc" : transform.highlight3 = "#ebe9e9";
                transform.st4 = "checkbox";
                transform.ST4 > "0" ? transform.highlight4 = "#4993cc" : transform.highlight4 = "#ebe9e9";
                transform.st5 = "checkbox";
                transform.ST5 > "0" ? transform.highlight5 = "#4993cc" : transform.highlight5 = "#ebe9e9";`

iOS での出力は機能していますが、次の警告が表示されます。

`

[警告] : 渡された 16 進数の色が無効に見えます:

ただし、tableView が読み込まれる時点で Android がクラッシュします。これは、以前のバージョンではエラーなしで機能していました。etcを削除{highlight1}して有効な16進数に置き換えると、正常に動作します。

これは、iPhone での出力の現在の画面スニペットです。

テーブル行のアイコンのスクリーン ショット

同じ結果を達成する方法についてのアドバイスは素晴らしいでしょう。

4

1 に答える 1