2012-12-26 1 views
0

저는 티타늄을 처음 사용합니다. 나는 행이있는 사용자 정의 테이블 뷰를 생성 중이다. 나는 4 개의 뷰를 연속적으로 추가했다. 각각의 해당보기에는 레이블 --- >> 체크인 시간, 체크 아웃 시간, 메모 및 시간이 있습니다. 체크 인 및 체크 아웃은 작업을위한 시간을줍니다. 메모는 메모를 추가하고 체크인 시간과 체크 아웃 시간에 차이를 표시하는 시간을 추가하는 것입니다. 데이터베이스에있는 특정 작업에 대한 노트를 현재 체크인 시간으로 업데이트하고 싶습니다. 그 행의 특정 클릭이있을 때 현재의 체크인 시간 레이블에 텍스트를 캡처하는 방법이 없습니다. 내가 시간의 체크를 얻으면 나는 현재의 체크 시간에 따라 데이터베이스의 해당 행을 업데이트 할 것이다.tableview에서 해당 행을 클릭하면 행 데이터를 얻습니다.

여기 내 코드입니다.

기능 세트 (날짜, 시간, 아웃 타임) { var date1 = 날짜;

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

}

답변

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

원래, 난 당신이 지금 다른 것 같다 귀하의 의견에 따라, 행 내부의 라벨을 조작하고 싶었다 생각했다.

+0

여기에 링크는 배열의 childern 속성을 가져 오는 힌트를 제공합니다 .... 그러나 내 IDE는 내게 childern 속성을주지 않습니다. – Aditya

+0

IDE가 항상 객체의 모든 기능을 노출하지는 않습니다. '인텔리 센스'를 찾고 있다면, 그 기능을위한 것이 아닐 수도 있습니다. 코드를 시험해보고 IDE에 의존하지 않고 코드가 작동하는지 확인해보십시오. – Martin

+0

안녕하세요, Martin 도움에 감사드립니다! 내 쿼리가 다른 ... 하나의보기 및 4 lables 데 사용자 지정 행을 만들었습니다 ... 나는 테이블에있는 모든 행을 클릭하면 첫 번째 lable (체크 인)의 텍스트를 찾으려면 .. – Aditya

관련 문제