-1

私はTitanium appceleratorプログラミングに慣れていません.私の疑いは、ボタンをクリックするとイベントが最初の画面でうまく機能し、その後そのボタンをクリックすると2番目の画面に移動します.2番目の画面は1つのボタンで構成され、そのボタンをクリックすると3番目の画面に移動します.しかし、ボタン クリック イベントは、2 番目の画面では機能しません。

次のように、2 つの画面で同じコードを記述しました。

どこを間違えたのか教えてください。

最初の画面:

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

次のコードを試してください。あなたのコードからサンプル アプリケーションを作成しました。やってみて

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. ウィンドウを複数回開くのは間違ったアプローチです [最初のファイルに win.open() を 2 回書きましたが、同じウィンドウを開こうとしています]

  3. url プロパティを使用してウィンドウを開いています。その中に新しいウィンドウを作成するよりも、Ti.UI.currentWindowプロパティを使用する方が適切です。

于 2013-07-04T08:10:45.187 に答える