在Titanium Appcelerator中,我有一个项目,通过一个函数创建一个tabGroup和窗口。
Ti.App.addEventListener('startCoSelect', function(e) {
// store user name and password globally
// user = e.user;
// pass = e.pass;
tabs.close();
tabs = tms.ui.createCoSelectGroup();
tabs.open();
});
Ti.App.addEventListener('startAppHome', function(e) {
tabs.close();
tabs = tms.ui.createApplicationTabGroup();
tabs.open();
});
var tabs = tms.security.getPermission();
tabs.open();
在这个函数中有一个按钮,这个按钮有一个分配给它的事件监听器,然后调用Ti.App.fireEvent('startCoSelect')。
btnLogin.addEventListener("click", function (e) {
Ti.App.fireEvent('startCoSelect');
});
从此事件侦听器调用一个函数,该函数将打开一个新的tabGroup和窗口,并关闭上一个选项卡组,如上所示。由tms.ui.createCoSelectGroup()创建的tabGroup内部是另一个触发另一个事件的eventlistener
btnSelect.addEventListener("click", function (e) {
Ti.App.fireEvent('startAppHome');
});
并再次在tms.ui.createApplicationTabGroup()函数中调用另一个事件侦听器和fireEvent。
我正在使用Titanium sdk 1.7在Titanium Studio中开发和测试所有代码,使用Mac OS X 10上的连续/每晚构建以及完全更新的Android和iOS sdk。
我的问题仅限于Android内部。移动应用程序在iPhone上完美运行。但是,在Android上(使用2.2 API的模拟器进行测试)我只能触发一个事件。作为一个例子,Android应用程序将接受第一个按钮“点击”事件罚款和激活事件,但然后下一个fireEvent调用(由下一个按钮按下激活)将不会触发。
我知道通过在每个事件监听器中放置一个警报来触发“click”事件,并且它必须是fireEvent调用。
我也知道它与调用的顺序没有任何关系。如果我首先更改了哪个事件,它将始终触发第一个事件,它将始终拒绝后面的fireEvent调用。例如,我更改了哪个tabGroup和窗口在启动时打开,第一个按钮单击并且fireEvent随后工作,即使注册了下一个单击事件,fireEvent调用也不会。
跟踪和控制台没有给出答案或错误代码,除了我在里面放置警报或功能外,我只剩下一个什么都不做的按钮。我试过让函数调用Ti.App.fireEvent()并且它没有改变。
我可能可以通过pastie发布代码,但我需要在发布之前删除重要信息,因此可能需要一天时间。
感谢所有帮助。