-1

我是 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();
4

1 回答 1

0

试试下面的代码。我已经根据您的代码创建了一个示例应用程序。试试看

应用程序.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. 多次打开一个窗口是错误的方法[你在第一个文件中写了两次 win.open(),它试图打开同一个窗口]

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

于 2013-07-04T08:10:45.187 回答