2012-08-29 21 views
0

基本上我试图在Titanium中实现单选按钮功能,这在iphone中的预期效果,但在Android中,它允许我选择多个单选按钮。钛 - 无法实现Android中的单选按钮行为,在iphone中工作

这里是我的代码

var lastRadioBtn = null; 
tableViewAns.addEventListener('click', function(e) { 

if(e.source.id === undefined) { 
Ti.API.info("---IN IF---"); 
} else { 
    Ti.API.info("---IN ELSE---"); 
    if(lastRadioBtn != null){ 
     Ti.API.info("---NOT NULL---"); 
     lastRadioBtn.image = '/images/Radio_Button_Not_Selected.png'; 
    } 
    lastRadioBtn = e.source; 
    lastRadioBtn.image = '/images/Radio_Button_Selected.png'; 

} 

}); 

这里我创建其中图像将被选中的单选按钮(上表点击)自定义行(1个图像,文字)和未选择的单选按钮时,任何其他行被点击。

一切似乎工作正常,即使在android我得到控制里面,如果条件取消选择图像,但不知道它不工作。

谢谢。

回答

0

我尝试了很多找到自己的解决方案,但未能解决这个问题,我尝试了所有财产这可能会被应用(使用e.row,e.rowData,e.row.children [i]),每个案例都可以在iPhone中正常工作,但在Android中一直失败。我调试,条件与android完美的工作,但不知道为什么不改变图像。

解决方案: - 我做了一个图像阵列。 现在在表中点击我管理这个数组,并使用这个数组而不是表行,这个解决方案适用于Android和Iphone(从数组访问元素,而不是获得一行表格,然后访问图像)。我希望这将有助于每个人和这个错误(我在想什么) 将得到解决。

谢谢。

0

试试这个,

var lastRadioBtn = false; 

tableViewAns.addEventListener('click', function(e) { 

if(e.source.id === undefined) { 
    Ti.API.info("---IN IF---"); 
} 
else { 
Ti.API.info("---IN ELSE---"); 
if(lastRadioBtn == false){ 
    Ti.API.info("---NOT NULL---"); 
    lastRadioBtn.image = '../images/Radio_Button_Not_Selected.png'; 
    } 
lastRadioBtn = e.source; 
lastRadioBtn.image = '../images/Radio_Button_Selected.png'; 
} 

}); 

可能这是对你有帮助...干杯......

+0

HI MRT,谢谢你的回答,但是这不起作用,现在当我点击表格行图像被改变时这是正确的,但是当我选择其他行时,只应该选择这一行(以前选择的按钮应该是自动的取消选择(android中的单选按钮行为,其中一次只能选择一个项目))。在我的上面的代码正确的IPhone,但与您的代码,它不工作。 此外,我不明白什么布尔在您的代码中工作? –

相关问题