我有一个程序,当用户点击项目时会打开详细信息视图,用户可以在其中进行编辑,当用户按下更新按钮时,当前窗口将关闭,列表视图将被更新。 / p>
这是我的代码:
arr = [user1, user2, user3, user4];
var sections = [];
var DataSection = Ti.UI.createListSection({
headerTitle : 'Data'
});
DataSection.setItems(MyDataSet);
sections.push(DataSection);
myListView.setSections(sections);
myListView.addEventListener('itemclick', function(e) {
var myWin = Titanium.UI.createWindow({
backgroundColor : '#000'
});
var h_view = Titanium.UI.createView({
backgroundColor : '#fff',
layout : 'horizontal'
});
var userImg = Titanium.UI.createImageView({
image : arr[e.itemIndex].getimage(),
width : 100,
height : 100
});
var v_view = Titanium.UI.createView({
backgroundColor : '#fff',
layout : 'vertical'
});
var nameLabel = Titanium.UI.createTextField({
value : arr[e.itemIndex].getName(),
color : '#000'
});
var mobileLabel = Titanium.UI.createTextField({
value : arr[e.itemIndex].getMob(),
color : '#000'
});
var labelAge = Titanium.UI.createTextField({
value : arr[e.itemIndex].getage(),
color : '#000'
});
var basicSwitch = Ti.UI.createSwitch({
titleOn : 'Male',
titleOff : 'Female'
});
basicSwitch.setValue(arr[e.itemIndex].getgender());
var updateButton = Titanium.UI.createButton({
text : 'update'
});
var index = e.itemIndex;
updateButton.addEventListener('click', function(e) {
arr[index].username = nameLabel.value;
arr[index].setAge(labelAge.value);
arr[index].setMob(mobileLabel.value);
arr[index].setGender(basicSwitch.value);
// I want to update the listview here
myWin.close();
});
h_view.add(userImg);
v_view.add(nameLabel);
v_view.add(labelAge);
v_view.add(mobileLabel);
v_view.add(basicSwitch);
v_view.add(updateButton);
h_view.add(v_view);
myWin.add(h_view);
myWin.open();
});
win1.add(myListView);
编辑:
我尝试过使用
Titanium.UI.createRefreshControl({});
但我总是收到此错误
Uncaught TypeError: Object #<UI> has no method 'createRefreshControl'
答案 0 :(得分:4)
您必须:首先获取您必须更新的项目,然后仅更新此项目......
myListView.addEventListener('itemclick', function(e) {
//get the item to be updated
var user= e.section.getItemAt(e.itemIndex);
//edit this user here
user.name.text="Coyote";
//then update the listview with the new data :
e.section.updateItemAt(e.itemIndex, user);
});