1

我是钛的新手,将它用于 iphone 应用程序我没有让事件在 Ti.Network.createHTTPClient() 函数中工作。我不能从网络功能的外部调用它。为什么会这样?

我的目标是当我单击一个图像时,它调用单击事件以在图像库中显示该图像。我在 carImageGallery.js 文件中有图片库代码。

我无法确定问题所在。请帮我。这是我的代码示例。提前致谢。

var win = Ti.UI.currentWindow;

var nid = Titanium.App.Properties.getInt('id');
var url = carsDetailUrl + nid;

var imageArea = Titanium.UI.createView({
    width : 300,
    top: 50,
    height : 125,
    backgroundColor : '#fffB',
    borderRadius : 6,
})


var xhr = Ti.Network.createHTTPClient({
    onload : function() {

        var tableData = [];
        var topPosition = 00;
        var cars, userNameLabel, commentsLabel, row, dateLabel;

        var headLines, titleLabel, imageLabel, i, row, viewDetail, cars,images;

        cars = JSON.parse(this.responseText);
        headLines = cars.data[1];
        images = cars.data[1]['image'];

        Ti.API.info(images);

        var mainScrollView = Ti.UI.createScrollView({
            top : '0dp',
            left : '0dp',
            contentWidth : 320,
            touchEnabled : 'true',
            borderRadius : 10,
            backgroundImage : '../images/bg.png',
            showHorizontalScrollIndicator : false,
            showVerticalScrollIndicator : false,
            height : '300dp'
        });

        if (getSession() != false) {
            mainScrollView.height = '300dp';
        } else {
            mainScrollView.height = 'auto';
        }

        var viewDetail = Ti.UI.createView({
            top : '10dp',
            left : '10dp',
            height : 'auto',
            width : '94%',
            touchEnabled : 'true',
            borderRadius : 10,
            backgroundColor : '#FFFFFF',
        });
        var view = Titanium.UI.createView({
            borderColor : "#C0C0C0",
            borderWidth : 1,
            top : "50dp",
            left : "10dp",
            width : "94%",
            height : "1dp"
        });

        var titleLabel = Ti.UI.createLabel({
            text : headLines['title'], 
            font : {
                fontSize : '14dp',
                fontWeight : 'bold',

            },
            height : 'auto',
            left : '10dp',
            top : '10dp',
            color : '#C51515',
            touchEnabled : true
        });
        brandLabel = Ti.UI.createLabel({
            text : headLines['brand'], 
            font : {
                fontSize : '12dp',
                fontWeight : 'bold',

            },
            height : 'auto',
            left : '10dp',
            top : '30dp',
            color : '#000',
            touchEnabled : true
        });

        var image1 = Ti.UI.createButton({
            backgroundImage : encodeURI(images[1]),
            left : '8dp',
            top : '10dp',
            width : '135dp',
            height : '106dp',
            borderColor : '#000000',
            borderRadius : 6,
            borderWidth : 1,
        });
        var image2 = Ti.UI.createButton({
            backgroundImage : encodeURI(images[2]), //"../images/bus.jpg",
            left : '150dp',
            top : '11dp',
            width : '70dp',
            height : '50dp',
            borderColor : '#000000',
            borderRadius : 3,
            borderWidth : 1,
        });
        var image3 = Ti.UI.createButton({
            backgroundImage : encodeURI(images[3]),
            left : '150dp',
            top : '64dp',
            width : '70dp',
            height : '50dp',
            borderColor : '#000000',
            borderRadius : 3,
            borderWidth : 1,
        });
        var image4 = Ti.UI.createButton({
            backgroundImage : encodeURI(images[4]),
            left : '223dp',
            top : '11dp',
            width : '70dp',
            height : '50dp',
            borderColor : '#000000',
            borderRadius : 3,
            borderWidth : 1,
        });
        var image5 = Ti.UI.createButton({
            backgroundImage : encodeURI(images[5]),
            left : '223dp',
            top : '64dp',
            width : '70dp',
            height : '50dp',
            borderColor : '#000000',
            borderRadius : 3,
            borderWidth : 1,
        });

        var textLabel1 = Ti.UI.createLabel({
            text : headLines['description'],
            font : {
                fontSize : '10dp',
                fontWeight : 'bold',

            },
            height : 'auto',
            left : '10dp',
            top : '170dp',
            //bottom: '50dp',
            color : '#000',
            touchEnabled : true
        });

        var view2nd = Titanium.UI.createView({
            layout : 'vertical',
            top : "20dp",
            left : "10dp",
            width : 300,
            touchEnabled : 'true',
            height : "auto"
        });

        viewDetail.add(view);
        viewDetail.add(titleLabel);
        viewDetail.add(brandLabel);
        viewDetail.add(imageArea);
        imageArea.add(image1);
        imageArea.add(image2);
        imageArea.add(image3);
        imageArea.add(image4);
        imageArea.add(image5);

        view2nd.add(textLabel1);

        image1.addEventListener('click', function(e) {

              Ti.API.info("image1 clicked");

            var newWin = Ti.UI.createWindow({
                url : '../automobileSubClass/carImageGallery.js',
                title : headLines['title'],
                tabBarHidden : true,
                barColor : '#000000',
                backgroundImage : "../images/bg.png"
            });
            Titanium.UI.currentTab.open(newWin, {
                animated : true
            });

        });

        mainScrollView.add(viewDetail);
        win.add(mainScrollView);

    },

    onerror : function(e) {
        Ti.API.debug("STATUS: " + this.status);
        Ti.API.debug("TEXT:   " + this.responseText);
        Ti.API.debug("ERROR:  " + e.error);
        alert('There was an error retrieving the remote data. Please check your   internet cunnectivity.');
    },
    timeout : 45000
});

xhr.open("GET", url);
xhr.send();
4

1 回答 1

0
image1.addEventListener('click', function(e) {

              Ti.API.info("image1 clicked");

            var newWin = Ti.UI.createWindow({
                url : '../automobileSubClass/carImageGallery.js',
                title : headLines['title'],
                tabBarHidden : true,
                barColor : '#000000',
                backgroundImage : "../images/bg.png"
            });
            Titanium.UI.currentTab.open(newWin, {
                animated : true
            });

        });
  1. 您是否尝试通过删除窗口和选项卡来注册单击事件。
  2. 为什么 tabBarHidden: true 并且您正试图在 currentTab 中打开 newWin。
于 2013-02-05T11:53:59.993 回答