Рассмотрим следующий код ниже:Appcelerator - Android Picker не сохраняя выбранное значение
function doClick(e) {
win.open();
}
var picker = null;
var backBtn = null;
var selectedIdx = 0;
$.index.open();
var win = Titanium.UI.createWindow({
exitOnClose : false,
navBarHidden : true
});
win.addEventListener("open", function() {
if(null != picker) {
//picker.setSelectedRow(0, selectedIdx, false);
return;
}
picker = Titanium.UI.createPicker({
width : "75%",
height : "50dip",
selectionIndicator : true
});
picker.addEventListener("change", function(id) {
selectedIdx = id.rowIndex;
});
var arr = [];
for(var i = 0; i < 10; i++) {
arr.push(Titanium.UI.createPickerRow({
title : i,
color : "black"
}));
}
selectedIdx = 0;
picker.add(arr);
backBtn = Titanium.UI.createButton({
bottom : "10dip",
title : "Close"
});
backBtn.addEventListener("click", function() {
win.close();
});
win.add(picker);
win.add(backBtn);
});
Если приведенный выше код выполняется с SDK 5.2.0.GA или 5.2.2.GA, то вы увидите, что значение сборщика не сохраняется. После открытия/закрытия окна, даже если мы повторно используем старый объект-подборщик. Но, если вы раскомментируете setSelectedRow (код взлома, я бы сказал), тогда он ведет себя по мере необходимости.
Любой человек сталкивается с такой проблемой или осознает правильное решение или причину ее возникновения.
Я создал JIRA для этого, в случае, любой человек заинтересован и хотел бы, чтобы его посмотреть. https://jira.appcelerator.org/browse/AC-3592 – Soumya