更新项目内的listview项目点击钛appcelerator

时间:2015-04-14 11:01:35

标签: titanium titanium-mobile titanium-android

Titanium Appcelerator 无法更新按钮单击下方列表视图代码中的文本:

{
            type : 'Ti.UI.View',
            bindId : 'vwqtySelection',
            properties : {
                top : '30dp',
                height : '50dp',
                //backgroundColor: 'red',
                width : require('main').XhdpiSupport(150),
                right : '90dp',
                zIndex : 10

            },
            childTemplates : [{
                type : 'Ti.UI.Button',
                bindId : 'btnMinus',
                properties : {
                    left : '15dp',
                    color : '#676972',
                    title : '-',
                    width : require('main').XhdpiSupport(30),
                    height : require('main').XhdpiSupport(22),
                }

            }, {
                type : 'Ti.UI.Label',
                bindId : 'qtyValue',
                properties : {
                    //touchenabled : false,
                    left : '50dp',
                    color : '#676972',
                    text : '4',
                    textAlign : 'center',
                }

            }, {
                type : 'Ti.UI.Button',
                bindId : 'btnPlus',
                properties : {
                    left : '79dp',
                    color : '#676972',
                    title : '+',
                }
            }]  
        }

>项目单击选择按钮单击时更新文本的位置 想要更新按钮点击的文本,即4到2

我试过

下面的代码

    scrlView.addEventListener('itemclick', function(e) {

         if (e.bindId === 'btnMinus') {
             item = section.getItemAt(e.itemIndex);
                e.section.qtyValue.properties.text = "2";
                e.section.updateItemAt(e.itemIndex, item); 
               //here not able to  update text 4 to 2 
        } else if (e.bindId === 'btnPlus') {

        }
}};

错误到达下方 消息:未捕获的TypeError:无法读取属性'属性'未定义的

1 个答案:

答案 0 :(得分:1)

这是如何编辑listView中的UI元素的示例。 每个ListItem都包含Label,其中包含数字和加号标签,当您点击加号标签时,它应该增加该listItem中的数字。

index.xml文件:

<ListView id="listView" class="listView" defaultItemTemplate="template">
    <Templates>
        <ItemTemplate name="template" layout='horizontal'>
            <Label bindId="number" id="number" left=20>0</Label>
            <Label bindId="add" id="add" right=20 onClick="addOneToCurrentNumber">+</Label>
        </ItemTemplate>
    </Templates>

    <ListSection>
        <ListItem number:text='0' />
        <ListItem number:text='-50' />
        <ListItem number:text='100' />
        <ListItem number:text='1024' />
    </ListSection>
</ListView>

index.js文件:

function addOneToCurrentNumber(e) {
    var row = $.listView.sections[0].getItemAt(e.itemIndex);
    var number = parseInt(row.number.text);
    number++;
    row.number.text = number;
    $.listView.sections[0].updateItemAt(e.itemIndex, row, { animated:true });
}

希望这有帮助,如果您需要任何修改,请告诉我。