如何在Titanium框架中处理Mutliple注释/精确单击事件?

问题描述

| 我已经在Google Maps的Titanium框架中应用了。我在地图上有多个位置,并显示为注释/定位点。我也接受了注释的click事件。注释将在下一个屏幕的表视图中显示数据。当我返回到Google Maps屏幕时,我必须单击返回按钮两次,而不是单击一次。 查询: 1)任何人都可以帮助我处理如何仅需单击1次而不是单击2次才能返回并且不应在单击返回按钮2次时呈现2次数据的返回事件。这里同一屏幕上显示2次数据后退按钮事件。 2)如果我在地图上有很多注释,那么当它执行点击事件并在下一个屏幕中应将查明的数据显示为表格视图时,如何获取相同/特定查明/注释的信息。 FOR LOOP,并从循环中向我们展示多个注释/精确点时,所有注释都应获取所有详细信息,并应将其自己的数据显示到下一个屏幕表格视图中。) 任何有用的代码链接将不胜感激... !!! 我在下面给出了代码片段:
mapview.addEventListener(\'click\',function(evt) {
    var annotation = evt.annotation;
    var title = evt.title;
    var clickSource = evt.clicksource;
    // alert(annotation + \'tit\'+title+\'clickSource\'+clickSource);
    // alert(\"Btn pressed\");

    if(evt.clicksource == \'rightButton\') {
        Titanium.App.Properties.setString(\"latitude\",latitude.item(0).text);
        Titanium.App.Properties.setString(\"longitude\",longitude.item(0).text);
        Titanium.App.Properties.setString(\"city\",city.item(0).text);
        Titanium.App.Properties.setString(\"address\",address.item(0).text);
        Titanium.App.Properties.setString(\"OwnerInstitution\",OwnerInstitution.item(0).text);
        Titanium.App.Properties.setString(\"TerminalDesc\",TerminalDesc.item(0).text);
        Titanium.App.Properties.setString(\"State\",state.item(0).text);
        Titanium.App.Properties.setString(\"Zip\",Zip.item(0).text);
        Titanium.App.Properties.setString(\"Charge\",Charge.item(0).text);

    var tab = Titanium.UI.currentTab;
        var win1 = Titanium.UI.createWindow({
            url:\'ATMDetails.js\',title:\'ATM Details\',// latitude:win1.latitude
        });
        tab.open(win1,{
            animated:true
        });
    }
});
    

解决方法

对于问题1,我无法正确理解您的观点。 对于问题2-据我了解,您想显示用户单击的特定注释的详细信息。 解: 使用for循环加载所有信息的函数定义了一个数组,该数组应存储特定阳极氧化的数据。喜欢
annotations = []; //updated
for (i=0; i < yourfeedsData.length; i++) {

      var detailData= [];

        //Your data
         var latitude =   latitude.item(0).text;
         // all list of your data .......


        // creating annotaions 
        var annotaion = Titanium.Map.createAnnotation( { 
                 title:\'Your title\',animate:true
            });  

      // pushing the data to array ..... all your values like,detailData.push({lat:latitude,...... });

      // setting data to your annotaion object
      annotaion.detailData=detailData; 

      // creating annotation array
          annotations[i] = annotaion ; //updated
     }

    your_mapView.addAnnotations(annotations); // updated
然后在您的click事件中,获取注释数据并将其传递给窗口详细信息。并使用该明细数据显示在列表中。
 // get the detail data
    var detailData = evt.annotation.detailData;
 if(evt.clicksource == \'rightButton\') {

                var tab = Titanium.UI.currentTab;
                var win1 = Titanium.UI.createWindow({
                    url:\'ATMDetails.js\',title:\'ATM Details\',//latitude:win1.latitude
                });
               // PASS THE DATA TO YOUR WINDOW  
               win1 .detailData = detailData;

                tab.open(win1,{
                    animated:true
                });

}