我是钛的新手。我正在创建一个带有行的自定义表视图。我连续添加了4个视图。每个相应的视图都有标签--->>检查时间,检查时间,注意和时间。签入和签出为任务提供时间。注意是添加注释和时间以显示签入和签出时间的差异。我想根据当前的入住时间更新数据库中特定任务的注释。当特定的行点击时,我无法捕获当前登记时间标签上的文本。如果我得到检查时间,那么我将根据当前的入住时间更新数据库中的相应行。
这是我的代码。
功能设定(日期,时间,时间) { var date1 = date;
var section = Ti.UI.createTableViewSection();
row1 = Ti.UI.createTableViewRow({layout:"horizontal"});
inview=Ti.UI.createView({
width:"25%",
});
inlabel=Ti.UI.createLabel({
text:intime,
font:{fontSize:13}
});
inview.add(inlabel);
outview=Ti.UI.createView({
width:"25%",
});
outlabel=Ti.UI.createLabel({
text:outtime,
font:{fontSize:13}
});
outview.add(outlabel);
inview.addEventListener('click',function(e){
// Ti.API.info(';',e.row1.rowID);
var picker=Ti.UI.createPicker();
picker.showTimePickerDialog({
callback: function(e){
if(e.cancel)
{
Ti.API.info('user canceled dialog');
}
else{
Ti.API.info('user selected date'+e.value);
var d=new Date(e.value);
var time=String.formatTime(d);
var newintime=d.getTime();
Ti.API.info(':'+time);
// var total=calculatetime(newintime,currouttime);
// timelabel.text=total;
inlabel.text=time;
//updateintime(date1,inlabel.text);
}
}
});
});
outview.addEventListener('click',function(e){
var picker=Ti.UI.createPicker();
picker.showTimePickerDialog({
callback: function(e){
if(e.cancel)
{
Ti.API.info('user canceled dialog');
}
else{
Ti.API.info('user selected date'+e.value);
var d=new Date(e.value);
var time=String.formatTime(d);
var newoutime=d.getTime();
Ti.API.info(''+newoutime);
// var total=calculatetime(currintime,newoutime);
// timelabel.text=total;
outlabel.text=time;
// updateoutime(date1,outlabel.text);
}
}
});
});
var timeview=Ti.UI.createView({
width:"25%",
});
var intime=parseInt(inlabel.text);
var outime=parseInt(outlabel.text);
var time=intime-outime;
var timelabel=Ti.UI.createLabel({
text:time,
font:{fontSize:13}
});
timeview.add(timelabel);
var noteview=Ti.UI.createImageView({
image:'TaskNote.png',
width:"15%",
});
noteview.addEventListener('click',function(e){
var tasknotewindow=Ti.UI.createWindow({
backgroundColor:'white',
layout:'vertical',
url:'TimeTracker/tasknote.js'
});
tasknotewindow.starttime=e.inlabel.text;
tasknotewindow.open();
});
var taskview=Ti.UI.createView({
width:"25%",
});
tasklabel=Ti.UI.createLabel({
text:"Click",
font:{fontSize:13},
});
//create window for task management
var taskmanagewindow = Ti.UI.createWindow({
backgroundColor: 'white', layout: 'vertical',
url:'TimeTracker/task.js'
});
//Task Dialog Box
taskoptionBox=Ti.UI.createOptionDialog({
title:'Task',
options:arrtaskname,
buttonNames:['Cancel'],
});
taskoptionBox.addEventListener('click',function(e){
tasklabel.text= arrtaskname[e.index];
});
tasklabel.addEventListener('click',function(e){
taskoptionBox.show();
});
taskview.add(tasklabel);
row1.add(inview);
row1.add(outview);
row1.add(timeview);
row1.add(noteview);
row1.add(taskview);
section.add(row1);
data.push(section);
table.setData(data);
}
答案 0 :(得分:1)
查看此问题/答案。也许你将能够用这个完成你的目标。我想你们都在尝试同样的事情。
How to find or trace child click in tableviewrow (Titanium Studio)
这就是我一直这样做的原因:
row1 = Ti.UI.createTableViewRow({
layout:"horizontal",
myval: intime // <=== Add your value here that you want to query for.
});
...
inlabel=Ti.UI.createLabel({
text:intime,
font:{fontSize:13}
});
inview.add(inlabel);
...
tableview.addEventListener('click', function(e){
alert(e.rowData.myval);
});
...
// This section seems jumbled. Should be something along the lines of the following...
// You have:
// section.add(row1);
// data.push(section);
// table.setData(data);
// Change to:
data.push(row1);
table.setData(data);
section.add(table);
最初,我认为你想根据你现在看来不同的评论来操纵行内的标签。