Quantcast
Channel: Appcelerator Developer Center Q&A Unanswered Questions 20
Viewing all articles
Browse latest Browse all 8068

dynamic variable creation

$
0
0
  • args.session could 3-5
  • then I need to create labels and picker for each label
  • So it seems like the "pickerValue" is being overwritten
  • I tried to create another array called pickerViewArray and at the end of the loop I am adding the pickerValue to this array. But it's not working. When I run the code and click on the label I get the following error:

message = "undefined is not an object (evaluating 'pickerViewArray[i].animate')";

[ERROR] :  Script Error {
[WARN] :   New layout set while view [object TiUIView] animating: Will relayout after animation.
[WARN] :   New layout set while view [object TiUIView] animating: Will relayout after animation.
[WARN] :   New layout set while view [object TiUIView] animating: Will relayout after animation.
[WARN] :   New layout set while view [object TiUIView] animating: Will relayout after animation.
[WARN] :   New layout set while view [object TiUIView] animating: Will relayout after animation.
[ERROR] :      column = 126;
[WARN] :   New layout set while view [object TiUIView] animating: Will relayout after animation.
[WARN] :   New layout set while view [object TiUIView] animating: Will relayout after animation.
[ERROR] :      line = 111;
[ERROR] :      message = "undefined is not an object (evaluating 'pickerViewArray[i].animate')";
[WARN] :   New layout set while view [object TiUIView] animating: Will relayout after animation.

So I guess pickerViewArray doesn't save the pickerView as an object?????

.
.
.
 
for(var i=1; i<= args.sessions; i++){
    //Here is where I create labels and their values
    var session = Ti.UI.createTableViewRow({height:46, className:"q{i}", title: i+"."});
    var value = Ti.UI.createLabel({color:'#3D4460', text:"", font:{fontSize:17, fontWeight:'normal'}, top:11, left:150, height:20, width:180, textAlign:'right'});      
 
    session.add(value);
    array.push(session);    
    tableView.setData(array);
 
    // This is where I create picker
    var picker = Ti.UI.createPicker({top:0, selectionIndicator: true}); 
    var pickerView = Ti.UI.createView({height:248,bottom:-248});
    var pickerHours = [];
    var pickerMinutes = [
        Ti.UI.createPickerRow({title:"00"}),
        Ti.UI.createPickerRow({title:"15"}),
        Ti.UI.createPickerRow({title:"30"}),
        Ti.UI.createPickerRow({title:"45"})
    ];
 
    // setting the hour
    for(var j=0; j<24; j++){
        pickerHours.push(Ti.UI.createPickerRow({title:"{j}"}));
    }
 
    picker.add(pickerHours);
    picker.add(pickerMinutes);
    pickerView.add(picker);
 
    picker.addEventListener('change',function(e){
        value.text = picker.getSelectedRow(0).title;
        tableView.setData(array);
    }); 
 
    // THIS IS THE PROBLEM
    pickerViewArray.push(pickerView);   
    win.add(pickerView);
}
 
// animations
var slideIn =  Ti.UI.createAnimation({bottom:-43});
var slideOut =  Ti.UI.createAnimation({bottom:-251});
 
 
//Accessing the PickerValueArray here
tableView.addEventListener('click', function(eventObject){
    for(var i=1; i <= pickerViewArray.length; i++){     
        for(var j=0; j < pickerViewArray.length; j++){
            if (eventObject.rowData.className == "q{i}"){
                pickerViewArray[i].animate(slideIn);
            } else {
                pickerViewArray[i].animate(slideOut);
            }
        }   
    }
});
 
win.add(tableView);
win.open();

Viewing all articles
Browse latest Browse all 8068

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>