Я хочу добавить Android Checkbox (SWITCH) в мой массив данных для TableView Используя appcelerator titanium? - PullRequest
0 голосов
/ 13 августа 2011

Я создал табличное представление со строками, в которых есть метка и переключатель, стиль - флажок. Мое требование, среди этих флажков строки, я выбираю некоторые из них. Затем, после, я хочу те флажки, которые отмечены и которые не отмечены. Вот мой код:

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

1 Ответ

0 голосов
/ 25 июня 2012

Строки, созданные с помощью литералов объектов, не могут иметь добавленные к ним представления.Но если вы создадите строку через 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();
...