按钮单击事件在Titanium中不起作用

时间:2013-07-04 07:37:06

标签: button ios6 appcelerator titanium-mobile

我是Titanium appcelerator编程的新手。我怀疑是按钮点击是事件在第一个屏幕上运行良好之后,当我点击该按钮进入第二个屏幕。第二个屏幕由一个按钮组成,当我点击该按钮导航时到第三个屏幕。但是按钮点击事件在第二个屏幕中不起作用。

我在两个屏幕上写了相同的代码如下:

请告诉我错误的地方。

第一个屏幕:

Ti.include("Files/MainScreen.js");
var win = Titanium.UI.createWindow({
  title:'My Window',
  backgroundColor:'#cccccc'
});
win.open(); 

var itemView = Titanium.UI.createView({
    title:'',
    backgroundImage:'splash.png',
    height:'768',
    width:'1024'
});

// Eventlistener
itemView.addEventListener('click',function(e) {

   var newWindow = Ti.UI.createWindow({
        background : "#000",
        title : "Image View",
        url:"Files/MainScreen.js"
    });
    newWindow.open(win,{animated:true}); 
});
win.add(itemView);
win.orientationModes=[Titanium.UI.LANDSCAPE_LEFT];
win.open();

MainScreen.js:

Ti.include("CustomerScreen.js");
var win = Titanium.UI.createWindow({
  title:'My Window',
  backgroundColor:'#cccccc',
  leftNavButton:btnCancel
  });

  var btnCancel = Titanium.UI.createButton({
    title:'Cancel'
});
var image = Ti.UI.createImageView({
  image:'main_screen.png'
});
win.add(image);
win.open();

var custbutton=Titanium.UI.createButton({
    title:'customer',
    top:200,
    bottom:300,
    left:90,
    height:'235',
    width:'235',
    backgroundColor:"#000"
});
custbutton.addEventListener('click',function alertingcustomer () {
var newWindow1 = Ti.UI.createWindow({
        background : "#000",
        title : "",
        url:"Files/CustomerScreen.js"
    });
   newWindow1.open(win,{animated:true}); 
});

win.add(custbutton);
win.open();


CustomerScreen.js
var win = Titanium.UI.createWindow({
  title:'Window',
  backgroundColor:'#cccccc',
  modal:true
});
win.open();

1 个答案:

答案 0 :(得分:0)

尝试以下代码。我已经从您的代码中创建了一个示例应用程序试一试

<强> app.js

var win = Titanium.UI.createWindow({
  title:'My Window',
  backgroundColor:'#cccccc'
});

var itemView = Titanium.UI.createView({
    title:'Splash screen',
    backgroundColor:'yellow',
    height:'768',
    width:'1024'
});

// Eventlistener
itemView.addEventListener('click',function(e) {
   var newWindow = Ti.UI.createWindow({
        background : "#000",
        title : "Image View",
        url:"MainScreen.js",
        backgroundColor:'#cccccc',
        leftNavButton:btnCancel
    });
    newWindow.open(win,{animated:true}); 
});
var btnCancel = Titanium.UI.createButton({
    title:'Cancel'
});
win.add(itemView);
win.orientationModes=[Titanium.UI.LANDSCAPE_LEFT];
win.open();

<强> MainScreen.js

var win = Ti.UI.currentWindow;
win.title = 'My Window';

var image = Ti.UI.createImageView({
  backgroundColor:'red'
});

win.add(image);

var custbutton=Titanium.UI.createButton({
    title:'customer',
    top:200,
    bottom:300,
    left:90,
    height:'235',
    width:'235',
    backgroundColor:"#000"
});
custbutton.addEventListener('click',function alertingcustomer () {
    var newWindow1 = Ti.UI.createWindow({
        title : "Customer screen",
        url:"CustomerScreen.js",
        title:'Window',
        backgroundColor:'#cccccc',
        modal:true
    });
   newWindow1.open(win,{animated:true}); 
});

win.add(custbutton);

<强> CustomerScreen.js

var win = Ti.UI.currentWindow;
//Do stuff here

你需要注意很多事情。

  1. 错误的方法是在另一个文件中包含一个文件,并打开一个将属性url设置为包含文件的窗口。

  2. 多次打开一个窗口是一种错误的方法[你在firts文件中写过两次win.open(),它试图打开同一个窗口]

  3. 您正在使用url属性打开一个窗口,使用Ti.UI.currentWindow属性比在其中创建一个新窗口更好。