【发布时间】:2014-08-08 09:59:17
【问题描述】:
我正在使用钛 3.3 和合金 1.4.1。用户应该能够从他的手机通讯录中向所有选定的人(这些人位于称为“联系人”的数组中)发送电子邮件。
用户可以在列表视图中从他的地址簿中选择和取消选择姓名/电子邮件(链接屏幕截图中的黄色背景)。
截图: http://s30.postimg.org/rsa82u9qp/listview_checkbox.png
从地址簿中拉出正确的信息(电子邮件)并在检查复选框时添加到联系人数组。因此通过复选框进行选择是有效的,但是当取消选择复选框时,电子邮件/项目不会从数组中删除。查看最后一个日志条目行:
Ti.API.info(JSON.stringify(contacts) + " 这是匹配数组 结束");
之前被选中但现在被取消选中的电子邮件仍在联系人数组中。
我也发现了这个,但不幸的是它没有帮助。
代码:
$.listview.addEventListener('itemclick',function(e){
var item = e.section.getItemAt(e.itemIndex);
if (item.properties.accessoryType == Ti.UI.LIST_ACCESSORY_TYPE_NONE) {
item.properties.accessoryType = Ti.UI.LIST_ACCESSORY_TYPE_CHECKMARK;
Ti.API.info(item.textEmail.text + " this is item.textEmail.textinside adding if");
var added = item.textEmail.text;
if (!_.contains(contacts,added)) {contacts.push(added);
}
Ti.API.info(JSON.stringify(added) + " item 1 added");
Ti.API.info(contacts + " this is matches array inside adding if");
}
else {
item.properties.accessoryType = Ti.UI.LIST_ACCESSORY_TYPE_NONE;
var removed = item.textEmail.text;
contacts = _.without(contacts, removed);
//contacts.splice(removed);
Ti.API.info(JSON.stringify(removed) + " item 2 removed");
Ti.API.info(JSON.stringify(contacts) + " this is contacts in removing if case");
}
e.section.updateItemAt(e.itemIndex, item);
Ti.API.info(JSON.stringify(contacts) + " this is matches array at the end");
});
任何想法我在这里做错了什么?
【问题讨论】:
标签: arrays listview titanium underscore.js