Titanium 钛合金:我想在一个窗口中添加和删除行,它将在第二个窗口中自动更新
我有两个xml文件..Titanium 钛合金:我想在一个窗口中添加和删除行,它将在第二个窗口中自动更新,titanium,titanium-alloy,appcelerator-alloy,appcelerator-studio,Titanium,Titanium Alloy,Appcelerator Alloy,Appcelerator Studio,我有两个xml文件..index.xml和win2.xml,两个窗口都有tableview,行中的内容相同,我的意思是: index.xml <Alloy> <Window backgroundColor="red" > <ScrollView id="scrollview" > <TableView id="table" > <TableViewRow title="Capsicum" onClic
index.xml
和win2.xml
,两个窗口都有tableview,行中的内容相同,我的意思是:
index.xml
<Alloy>
<Window backgroundColor="red" >
<ScrollView id="scrollview" >
<TableView id="table" >
<TableViewRow title="Capsicum" onClick="select"></TableViewRow>
<TableViewRow title="Beans" onClick="select" ></TableViewRow>
<TableViewRow title="Spinach" onClick="select"></TableViewRow>
<TableViewRow title="Pizza" onClick="select"></TableViewRow>
<TableViewRow title="Burger" onClick="select"></TableViewRow>
</TableView>
</View>
</ScrollView>
</Window>
win2.xml
<Alloy>
<Window backgroundColor="red" id="win2">
<TableView id="tableView" >
<TableViewRow title="Capsicum" onClick="select"></TableViewRow>
<TableViewRow title="Beans" onClick="select" ></TableViewRow>
<TableViewRow title="Spinach" onClick="select"></TableViewRow>
<TableViewRow title="Pizza" onClick="select"></TableViewRow>
<TableViewRow title="Burger" onClick="select"></TableViewRow>
</TableView>
<TextField id="textfield" returnKeyType="Ti.UI.RETURNKEY_DONE" onReturn="addRow" class="insertField" hintText="Add ingredients"></TextField>
<Button id="removeButton" onClick="removeRow"></Button>
</Window>
</Alloy>
我们可以在两个窗口中创建一个单一的tableview和access吗?就像是说可以使用数据绑定,或者如果数据绑定太多,可以通过文件或属性共享数据
您需要从数据中创建一个JSON对象,并解析该数据以创建表。一旦更改了表中的数据,就可以将所有更改应用于JSON对象。当您打开窗口时,您将使用该数据创建表
初始数据:
var myData = [{"name":"Item name 1", "checked": true,..}, {"name":"Item name 2", "checked": false,..}, ...];
Ti.App.Properties.setObject("myData", myData);
现在,在其他两个控制器中:
var myData = Ti.App.Properties.getObject("myData", []); // this will receiv myData or {}
现在myData拥有了所有元素,您可以使用该数组创建表
将行0更改为选中时,更改myData[0]。checked=true/false代码>。最后,再次执行Ti.App.Properties.setObject(“myData”,myData)
来存储数据
如果您有很多数据,或者即使用户清除了应用程序缓存/存储,您也希望保留这些数据,您可以将myData
保存到一个文件中,然后重新读取,而不是getObject
未来:
使用数据绑定/模型将帮助您摆脱所有这些手动更新。当您更改数据时,所有连接的元素都将更新,就像说您可以使用数据绑定,或者如果数据绑定太多,您可以通过文件或属性共享数据
您需要从数据中创建一个JSON对象,并解析该数据以创建表。一旦更改了表中的数据,就可以将所有更改应用于JSON对象。当您打开窗口时,您将使用该数据创建表
初始数据:
var myData = [{"name":"Item name 1", "checked": true,..}, {"name":"Item name 2", "checked": false,..}, ...];
Ti.App.Properties.setObject("myData", myData);
现在,在其他两个控制器中:
var myData = Ti.App.Properties.getObject("myData", []); // this will receiv myData or {}
现在myData拥有了所有元素,您可以使用该数组创建表
当您更改要检查的第0行时,您更改了myData[0]checked=true/false代码>。最后,再次执行Ti.App.Properties.setObject(“myData”,myData)
来存储数据
如果您有很多数据,或者即使用户清除了应用程序缓存/存储,您也希望保留这些数据,您可以将myData
保存到一个文件中,然后重新读取,而不是getObject
未来:
使用数据绑定/模型将帮助您摆脱所有这些手动更新。更改数据时,所有连接的元素都将更新使用数据绑定。使用数据绑定。