0

我用行創建了表視圖,那些包含標籤和開關盒,樣式是複選框。我的要求是,在這些行復選框中,我選擇了其中一些。然後,我想要那些被選中並且未被選中的複選框。以下是我的代碼:我想添加Android複選框(SWITCH)到我的TableView數據數組使用appcelerator titanium?

// My Array Data for Table-view 

var checkboxArray = [ { title: "Mountain View (North America)\nCloudy", leftImage: "http://www.google.com/ig/images/weather/cloudy.gif" }, 
{ title: "Sucre (South America)\nMostly Cloudy", leftImage: "http://www.google.com/ig/images/weather/mostly_cloudy.gif" }, 
{ title: "Prague (Europe)\nClear", leftImage: "http://www.google.com/ig/images/weather/sunny.gif" }, 
{ title: "St Petersburg (Europe)\nSnow", leftImage: "http://www.google.com/ig/images/weather/snow.gif" },]; 


// My Android checkbox 

var checkbox = Ti.UI.createSwitch({ 
style:Ti.UI.Android.SWITCH_STYLE_CHECKBOX, 
title:"Sound Enabled", 
value:true 
}); 

// My Header label inside table-view 

var headerLabel = Ti.UI.createLabel({ 
    backgroundColor:'#035385', 
    color:"white", 
    font:{ fontSize: 30, fontWeight:"bold" }, 
    text:"Favoriete Merken", 
    textAlign:"center", 
    height:45, 
    width:500 
}); 

// My Table View 

var table = Ti.UI.createTableView({ 
    backgroundColor:"white", 
    data:checkboxArray, 
    headerView:headerLabel, 
    separatorColor:"black", 
    top:0, 
    width:'auto' 
}); 

win2.add(table); 

回答

0

通過對象文字創建的行不能添加視圖。但是如果你通過Ti.UI.createTableViewRow創建行,你可以。因此,要添加複選框,只需更改您的示例以明確創建行,添加複選框,存儲對複選框的引用即可完成。

var win = Ti.UI.createWindow({ 
    backgroundColor: '#fff' 
}); 

var rows = []; 
var data = [ 
    { title: 'Mountain View (North America)\nCloudy', leftImage: 'http://www.google.com/ig/images/weather/cloudy.gif' }, 
    { title: 'Sucre (South America)\nMostly Cloudy', leftImage: 'http://www.google.com/ig/images/weather/mostly_cloudy.gif' }, 
    { title: 'Prague (Europe)\nClear', leftImage: 'http://www.google.com/ig/images/weather/sunny.gif' }, 
    { title: 'St Petersburg (Europe)\nSnow', leftImage: 'http://www.google.com/ig/images/weather/snow.gif' } 
]; 

for (var i = 0, l = data.length; i < l; i++) { 
    var row = Ti.UI.createTableViewRow(); 
    row.add(Ti.UI.createImageView({ 
     image: data[i].leftImage, 
     width: 45, height: 45, 
     left: 0 
    })); 
    row.add(Ti.UI.createLabel({ 
     text: data[i].title, textAlign: 'left', 
     color: '#000', 
     left: 50, right: 50 
    })); 
    row.add(data[i].switch = Ti.UI.createSwitch({ 
     style: Ti.UI.Android && Ti.UI.Android.SWITCH_STYLE_CHECKBOX, 
     title: 'Sound Enabled', 
     value: true, 
     right: 5, 
     width: 40 
    })); 
    rows[i] = row; 
} 

win.add(Ti.UI.createTableView({ 
    data: rows, 
    backgroundColor: 'white', 
    separatorColor: 'black', 
    headerView: Ti.UI.createLabel({ 
     backgroundColor: '#035385', 
     color: 'white', 
     font: { fontSize: 30, fontWeight: 'bold' }, 
     text: 'Favoriete Merken', textAlign: 'center', 
     height: 45 
    }), 
    bottom: 45 
})); 

var alertFirstSwitchValue = Ti.UI.createButton({ 
    title: 'Alert First Switch Value', 
    bottom: 0, right: 0, left: 0, 
    height: 45 
}); 
alertFirstSwitchValue.addEventListener('click', function() { 
    alert(data[0].switch.value); 
}); 
win.add(alertFirstSwitchValue); 

win.open(); 
相關問題