2014-11-22 166 views
0

我有一個程序,有一個列表視圖,當用戶點擊項目時,一個詳細信息視圖打開,用戶可以編輯它,當用戶按下更新按鈕時,當前窗口將被關閉,並且列表視圖將會被更新。刷新/更新列表查看鈦

這是我的代碼:

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' 

回答

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); 
});