Tableview row check
I've got an issue with the hasCheck parameter. Basicly i want to be able to check and uncheck a row with an eventlistener. The kitchensink had an example on how to check a specific row. My problem is the unchecking of the row, for some reason i cant get my if statment working. here is an example:
// create table view data object
var data = [];
data[0] = Ti.UI.createTableViewRow({title:'row 1'});
data[1] = Ti.UI.createTableViewRow({title:'row 2'});
data[2] = Ti.UI.createTableViewRow({title:'row 3'});
// create table view
var tableview = Titanium.UI.createTableView({
data:data
});
// create table view event listener
tableview.addEventListener('click', function(e)
{
// event data
var index = e.index;
var section = e.section;
var row = e.row;
var rowdata = e.rowData;
//row.hasCheck = true;
var check = true;
if(row.hasCheck === false) {
row.hasCheck = true;
Ti.API.info("checked");
}
if(row.hasCheck === true) {
row.hasCheck = false;
Ti.API.info("unchecked");
}
Ti.API.info("click");
Ti.API.info(row.hasCheck);
//Titanium.UI.createAlertDialog({title:'Table View',message:'row ' + row + ' index ' + index + ' section ' + section + ' row data ' + rowdata}).show();
});
First time you click it the row.hasCheck paramiter gives an empty trace, but checking if row.hasCheck === null aint working.
2 Answers
-
Finally solved it, if statement trouble..
// create table view data object var data = []; data[0] = Ti.UI.createTableViewRow({title:'row 1'}); data[1] = Ti.UI.createTableViewRow({title:'row 2'}); data[2] = Ti.UI.createTableViewRow({title:'row 3'}); // create table view var tableview = Titanium.UI.createTableView({ data:data }); // create table view event listener tableview.addEventListener('click', function(e) { // event data var index = e.index; var section = e.section; var row = e.row; var rowdata = e.rowData; //row.hasCheck = true; var check = true; if(row.hasCheck === true) { row.hasCheck = false; Ti.API.info("unchecked"); } else { row.hasCheck = true; Ti.API.info("checked"); } Ti.API.info("click"); Ti.API.info(row.hasCheck); //Titanium.UI.createAlertDialog({title:'Table View',message:'row ' + row + ' index ' + index + ' section ' + section + ' row data ' + rowdata}).show(); });
-
You are way overcomplicating your code:
tableView.addEventListener('check', function (e) {
row.setHasCheck( !e.row.hasCheck );
});