0

XTemplateで特定の回数ループを実行する方法

以下は機能しません

<tpl for="5">
...
</tpl>

よろしく、kkris1983


Android: ListView をデータ モデルの名前で並べ替える

ListViewアルファベット順に並べようとしています。

AiringModel()というゲッターを持つ というデータ モデル クラスがありますgetName()。からの戻り値に基づいて ListView を注文する必要がありますgetName()

これまでのところ、次のようなComparatorアダプタで を使用してみましたsort():

final ArrayAdapter<AiringModel> adapter = new TrackingAdapter(
                activity.getSherlockActivity(), resultList);
        //resultList -> List<AiringModel> list
        adapter.sort(new Comparator<AiringModel>() {
            @Override
            public int compare(AiringModel lhs, AiringModel rhs) {
                // TODO Auto-generated method stub
                return lhs.getName().compareTo(rhs.getName());
            }
        });
        trackingAdapter = adapter;
        activity.setListAdapter(adapter);

ただし、これは機能しません。エラーはありませんListView。まったく同じままです。

私が間違っていることは何か分かりますか?

編集:

リストはログに従って完全にソートされたので、さらに掘り下げてみると、別のスレッドでアダプターをリセットしていたことがわかりました。アイデアを教えてくれてありがとう、それは役に立ちました。

4

1 に答える 1

0

これが機能すると私が思う唯一の方法は、次のように変数に 5 つの項目を入力することです。

Ext.onReady(function () {
    var panel = Ext.create('Ext.panel.Panel', {
        renderTo: Ext.getBody(),
        title: 'test',
        height: 300,
        width: 300
    });

    var total = 5;
    var data = {
        count: []
    };    
    for (var i = 1; i <= 5; i++) {
        data.count.push(i);
    }

    var tpl = [
        '<tpl for="count">',
        '{.}<br>',            
        '</tpl>'];

    var t = new Ext.XTemplate(tpl);
    panel.update(t.apply(data));
});

フィドル: http://jsfiddle.net/johanhaest/2WEVE/3/

于 2013-03-15T09:41:11.827 に答える