UIPickerView里面的Titanium中的TableView实现

时间:2014-09-21 10:37:58

标签: titanium-alloy picker

我在TableView中创建了一个PickerView,它位于tableViewRow上。但是我无法访问Picker的完整属性。

例如,我无法为PickerView设置TextHint 我无法在index.js中的选择器中获取selectedRow

这是我在index.xml中的代码

<Alloy>
<Window class="container">
    <!-- <Label id="label" onClick="doClick">Hello, World</Label> -->
    <TableView id="table">
        <TableViewSection>
             <TableViewRow>
                <TextField id="id_membership_number" width="Ti.UI.FILL" hintText="Membership Number"/>
            </TableViewRow>
            <TableViewRow>
             <Picker id="id_picker" selectionIndicator="true" onChange="picker_method" value="Sector" selectionIndicator="true">
            <!-- On iOS, views can be added to picker rows -->
                    <PickerColumn id="column1">                
                        <PickerRow title="Real Estate"  id="id_picker_row">0</PickerRow>
                        <PickerRow title="Automobiles"  id="id_picker_row">1</PickerRow>
                        <PickerRow title="Others"  id="id_picker_row">2</PickerRow>
                    </PickerColumn>
            </Picker>
            </TableViewRow>
            <TableViewRow title="Region"/>
            <TableViewRow title="Membership Type"/>
        </TableViewSection>
    </TableView>
    <Button id="id_member_search_btn" onClick="member_search_method"></Button>
</Window>

index.js

function picker_method(event){
    event=$.id_picker;
    Ti.API.info("User selected: " + event.getSelectedRow(0) + column.getSelectedRow(0));
}

在控制台上我得到:

User selected: undefined

1 个答案:

答案 0 :(得分:0)

在您看来:

<Alloy>
<Window class="container">
    <!-- <Label id="label" onClick="doClick">Hello, World</Label> -->
    <TableView id="table">
        <TableViewSection>
             <TableViewRow>
                <TextField id="id_membership_number" width="Ti.UI.FILL" hintText="Membership Number"/>
            </TableViewRow>
            <TableViewRow>
             <Picker id="id_picker" selectionIndicator="true" onChange="picker_method" value="Sector" selectionIndicator="true">
             <!-- On iOS, views can be added to picker rows -->
                <PickerColumn id="column1">                
                    <PickerRow title="Real Estate"/>
                    <PickerRow title="Automobiles"/>
                    <PickerRow title="Others"/>
                </PickerColumn>
            </Picker>
            </TableViewRow>
            <TableViewRow title="Region"/>
            <TableViewRow title="Membership Type"/>
        </TableViewSection>
    </TableView>
    <Button id="id_member_search_btn" onClick="member_search_method"></Button>
</Window>
</Alloy>

在你的JS中:

function picker_method(event){
    Ti.API.info("user selected   : "+event.selectedValue);
}

您应该阅读更改事件文档,以获取有关传递给onchange处理程序的内容的更多信息http://docs.appcelerator.com/titanium/3.0/#!/api/Titanium.UI.Picker-event-change

此外,请注意我删除了您在PickerRows上的重复ID,ID必须是唯一的。