Titanium Mobile:加载第一个窗口后应用程序崩溃

时间:2011-08-23 13:12:59

标签: javascript titanium titanium-mobile

我开始了一个新的钛移动项目(第一次!)。我有一个带有选项卡组的文件main.js和两个链接到两个窗口的选项卡。我的第一个标签看起来很好,但之后的一切似乎都崩溃了。我无法单击列表项或触发按钮单击事件。我的第二个标签不起作用。虽然不是所有的时间。一半时间没关系,另一半时间它很好。这是我的代码:

app.js:

Titanium.UI.setBackgroundColor('#fff');

var main = Ti.UI.createWindow({
    url:'main_windows/main.js',
    height:Ti.Platform.displayCaps.platformHeight,
    width:Ti.Platform.displayCaps.platformWidth,
    fullscreen: true,
    navBarHidden: false
});

main.open();

main.js:

var win = Ti.UI.currentWindow;

var appointments = Titanium.UI.createWindow({});
appointments.url = 'appointments.js';

var quotes = Titanium.UI.createWindow({});
quotes.url = 'quotes.js';

var tabAppointments = Titanium.UI.createTab({  
    icon:'../KS_nav_views.png',
    title:'Appointments',
    window:appointments
});

var tabQuotes = Titanium.UI.createTab({  
    icon:'../KS_nav_views.png',
    title:'Quotes',
    window:quotes
});

// create tab group
var tabGroup = Titanium.UI.createTabGroup();
//
//  add tabs 
//
tabGroup.addTab(tabAppointments);  
tabGroup.addTab(tabQuotes);  

// open tab group
tabGroup.open();

当我启动我的应用程序时,会加载约会窗口。但是,当我单击引号选项卡或其中一个列表项时,没有任何反应。

这是我的appointmentments.js文件:

var win = Ti.UI.currentWindow;
win.backgroundColor = '#fff';   
win.title = 'Appointments';

var data = [
    {title:'Billy Jones', hasChild:true},
    {title:'Adrian Hart', hasChild:true},
    {title:'Sid Vel', hasChild:true},
    {title:'Andrew Coats', hasChild:true}
];

// create table view
var tableview = Titanium.UI.createTableView({
    data:data
});

win.add(tableview);

我的quotes.js文件与上面的相同,但有不同的窗口标题。

就像我说的那样,有时候每一个似乎都有用,然后我重新构建了代码并且它再次无法运行。

最值得赞赏的任何帮助!

比利

3 个答案:

答案 0 :(得分:0)

如何将main.js更改为

var appointments = Titanium.UI.createWindow({
  url: 'appointments.js'
});

var quotes = Titanium.UI.createWindow({
  url: 'quotes.js'
});

有帮助吗?

答案 1 :(得分:0)

您的列表视图中没有单击事件处理程序,因此单击列表时不会发生任何事情。

tableview.addEventListener('click',function(e) {
       alert("clicked row"); 
});

所有文件都在哪里?我注意到你在名为main_windows的目录中有一些?通过URL创建窗口时,请确保正确设置路径。您可以通过将所有文件移动到同一目录然后查看它是否有效来检查它是否是URL路径问题

答案 2 :(得分:0)

先试试......

var tabAppointments = Titanium.UI.createTab({  
    icon:'/KS_nav_views.png',
    title:'Appointments',
    window:appointments
});

var tabQuotes = Titanium.UI.createTab({  
    icon:'/KS_nav_views.png',
    title:'Quotes',
    window:quotes
});

将您的图标路径替换为类似的内容并进行编译和检查,您无需提供路径... /将从您应用的根目录中获取...

  1. 根据您的陈述,该代码有时会工作,有时则不会。删除你在build文件夹中的Android文件夹的内容,然后尝试编译,这是因为一些缓存问题和btw你使用的是哪个版本的钛。

  2. 从main.js文件中删除var win = Ti.UI.currentWindow; ...

  3. 让我知道,如果他们中的任何人工作,可能是他们之间的任何问题,如果你的问题仍然存在......请在这里做评论。