2017-10-10 7 views
0

Je veux créer un OptionDialog comme celui-ci sur Android (chaque ligne ayant une étiquette sur la gauche et un commutateur à droite):Comment puis-je faire un OptionDialog avec des cases à cocher/commutateurs (Android Appcelerator)

example optiondialog

Mais le code que je utilise ne fonctionne pas:

var optsView = Ti.UI.createView({ 
    backgroundColor : '#ffffff', 
}); 

var opts = ["aaa", "bbb", "ccc"]; 
for (var i = 0; i < opts.length; i++) 
{ 
    var row = Ti.UI.createView({ 
     backgroundColor: "#ffffff" 
    }); 

    var label = Ti.UI.createLabel({ 
     left: "8dp", 
     color: 'black', 
     size: '14sp', 
     title: opts[i] 
    }); 

    var check = Ti.UI.createSwitch({ 
     style : Ti.UI.Android.SWITCH_STYLE_CHECKBOX, 
     value : false, 
     right: "8dp" 
    }); 

    row.add(label); 
    row.add(check); 

    optsView.add(row); 
} 

var option = Ti.UI.createOptionDialog({ 
    title: 'Configuration', 
    androidView: optsView 
}); 

option.show(); 

l'application se bloque et lui montrer sur la console:

[ERROR] : TiExceptionHandler: (main) [6049,7004] ----- Titanium Javascript Runtime Error ----- 
[ERROR] : TiExceptionHandler: (main) [0,7004] - In undefined:124,16 
[ERROR] : TiExceptionHandler: (main) [0,7004] - Message: Uncaught java.lang.String cannot be cast to java.util.HashMap 
[ERROR] : TiExceptionHandler: (main) [0,7004] - Source:   option.show(); 

Je suppose que mon problème est sur la boucle for. J'ai essayé de commenter ce morceau de code et mon application ne va pas tomber en panne, mais je ne sais pas ce qui ne va pas.

Répondre

0

Mon application plantait parce que je tapais « Taille: « 14SP » » au lieu de « la police: {fontSize: « 14SP » } "sur le constructeur Label.