2011-07-05 8 views
0

私は動的なテーブルビューを持っています。 行の1つをクリックすると、新しい画面が表示されます。それは動作しますが、左上に戻るボタンは現在のウィンドウのタイトルを表示するので、テーブルビューのタブに戻るには、2回以上クリックする必要があります。どんな考え?ダイナミックテーブルビューでダブルクリックするとウィンドウが2回以上開きます - appcelerator

var win = Titanium.UI.currentWindow; 
Titanium.include('strip_tags.js'); 
var tab = Titanium.UI.currentTab; 
var tableView = Titanium.UI.createTableView({top:43,   
separatorStyle: 'none', 
    backgroundColor:'transparent'}); 
    win.add(tableView); 
    Ti.UI.currentWindow.addEventListener('focus', function() { 
     loadTweets(); 

}); 


function loadTweets() 
{ 


var rowData = []; 

var loader = Titanium.Network.createHTTPClient(); 

loader.open("GET","url", true); 

loader.onload = function() 
{ 
    var tweets =JSON.parse(this.responseText); 



    for (var i = 0; i < tweets.length; i++) 
    { 
     var id = tweets[i].id; 
     var title = tweets[i].name; // The tweet message 
     var special=tweets[i].special; 
     if(special>0) { 
      var price=tweets[i].special; 
      var color2='#4C6B22'; 
     } else { 
      var color2='#fff'; 
      var price=tweets[i].price; 
     } 


     var thumb = tweets[i].thumb; // The profile image 
     title=title.replace('®', ''); 
     title=title.replace('™', ''); 


     var row = Titanium.UI.createTableViewRow({height:'auto',top:20 , backgroundImage:Ti.Filesystem.resourcesDirectory + '/images/row_bg.png', borderWidth:0, separatorStyle: 'none'}); 


     var post_view = Titanium.UI.createView({ 
      height:'auto', 
      layout:'vertical', 
      top:0, 
      right:5, 
      bottom:0, 
      left:5, 
      borderWidth:0, 
      height:49 


     }); 

     var av_thumb = Titanium.UI.createImageView({ 
      url:thumb, // the image for the image view 
      top:0, 
      left:0, 
      height:48, 
      width:48 
     }); 
     post_view.add(av_thumb); 

     var av_title = Titanium.UI.createLabel({ 
      text:title, 
      left:54, 
      width:210, 
      top:-30, 
      bottom:2, 
      height:16, 
      textAlign:'left', 
      color:'#fff', 
      font:{fontFamily:'Trebuchet MS',fontSize:14,fontWeight:'bold'} 
     }); 
     post_view.add(av_title); 

     var av_desc = Titanium.UI.createLabel({ 
      text:special, 
      left:270, 
      top:-20, 
      color:'#fff', 
      bottom:2, 
      height:'auto', 
      width:236, 
      textAlign:'left', 
      font:{fontSize:14} 
     }); 
     post_view.add(av_desc); 

     row.add(post_view); 

     row.className = "item"+i; 


     row.thisTitle = title; 
     row.thisId = id; 

     rowData[i] = row; 
    } 

     var winCount = Titanium.UI.createLabel({ 
      text:tweets.length+' blalba', 
      height:43, 
      top:0, 
      left:0, 
      width:320, 
      height:50, 
      textAlign:'center', 
      color:'#fff', 
      backgroundImage:Ti.Filesystem.resourcesDirectory + '/images/row_bg.png', 
      font:{fontFamily:'Trebuchet MS',fontSize:14,fontWeight:'bold'} 
     }); 


     win.add(winCount); 

    tableView.setData(rowData); 
    tableView.addEventListener('click', function(e){ 



    var w2 = Titanium.UI.createWindow({ 
      title:e.rowData.thisTitle, 
      url:'cikk.js', 
      barColor:'#000', 
      backgroundImage:Ti.Filesystem.resourcesDirectory + '/images/winbg.png' 
     }); 
     w2.stringProp1 = strip_tags(e.rowData.thisId); 

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



} 

)}; 

loader.send(); 
} 
+0

「w2」が開き、そのウィンドウでメインの「tableview」タブに戻るために「戻る」ボタンを2回クリックしなければならないということを聞いています。 'cikk.js'ファイルには何がありますか? – bh88

答えて

0

私の勘では、イベントリスナーfocusが二回呼ばつつあり、それが、その後tableViewのEventListenerが二回ロード取得させる二回ロードされますするツイートを引き起こしているということです。

focusを使用してeventListenerを追加する場合は、blurを使用してeventListenerを削除することをおすすめします。

関連する問題