2012-02-14 21 views
1

朋友你好,鈦手機:檢索的tableview行標題及其在接下來的窗口中的問題顯示

我正在使用的tableview自定義單元格,然後開發一種顯示類別類型的應用程序選擇一個爭吵的細節去哪些選擇的類別類型,但我面臨的問題是我無法在下一個窗口獲得行標題。所以請給我想法如何解決它。

Ti.include('PlacesTypeCustomCell.js'); 
var currentWindow = Titanium.UI.currentWindow; 
var tableData = []; 

// Create table 
var tableData = new PlacesTypeCells(); 

var myTableView = Titanium.UI.createTableView 
({ 
    data:tableData, 
    top:45, 
    height:368 

}); 
currentWindow.add(myTableView); 

myTableView.addEventListener('click',function(e) 
{ 
    var index = e.index; 
    Ti.API.log('Row at index:'+index); 
    Titanium.App.Properties.setInt('index',index); 

    v//get each row title from tableview 
var pageTitle = Titanium.App.Properties.setString('title',e.rowData.pageTitle); 
Ti.API.log('Page Title:'+pageTitle); 

var pageAddress = Titanium.App.Properties.setString('address',e.rowData.pageAddress); 
Ti.API.log('Page Address:'+pageAddress); 

    var win = Titanium.UI.createWindow 
    ({ 
     url:'PlacesList.js', 
     title:'Place List' 
    }); 

    Titanium.UI.currentTab.open(win,{animated:true}); 
}); 


//Custom Cell PlacesTypeCustomCell 



    var tableData=[]; 

    var loader = Titanium.Network.createHTTPClient(); 

    var url = "https://maps.googleapis.com/maps/api/place/search/json?";  
    url = url + "location=" + lat + ',' + lon; 
    url = url + "&radius=" + radius; 
    url = url + "&name=" + name; 
    url = url + "&sensor=" + sensor; 
    url = url + "&key=" + key; 

    Ti.API.info(url); 
    // Sets the HTTP request method, and the URL to get data from 
    loader.open("GET",url); 
    // Create our HTTP Client and name it "loader" 
    // Runs the function when the data is ready for us to process 
    loader.onload = function() 
    { 
     var obj = JSON.parse(this.responseText); 
     Ti.API.log(obj);  
     var results = obj.results; 
     Ti.API.log(results); 


     for (var i = 0; i < results.length; i++) 
     { 
      categoryName = obj.results[i].name; 
      reference = obj.results[i].reference; 
      Ti.API.log('Refernce:'+reference); 

      getDetailsData(); 

      // Create a row and set its height to auto 
      row = Titanium.UI.createTableViewRow({height:'78'}); 

      var placeImage = Titanium.UI.createImageView 
      ({ 
       image:'../iphone/appicon.png', 
       width:70, 
       height:50, 
       top:12, 
       left:5 
      }); 

      // Create the label to hold the tweet message 
      var nameLabel = Titanium.UI.createLabel({ 
       //text:name, 
       left:80, 
       top:5, 
       height:'auto', 
       width:200, 
       textAlign:'left', 
       font:{fontSize:12} 
      }); 

      // Create the label to hold the tweet message 
      addressLabel = Titanium.UI.createLabel({ 
       left:80, 
       top:25, 
       height:'auto', 
       width:200, 
       textAlign:'left', 
       font:{fontSize:14} 
      }); 

      var arrowImage = Ti.UI.createImageView 
      ({ 
       image:'../iphone/appicon.png', 
       width:20, 
       height:20, 
       left:280, 
       top:30 
      }); 

      nameLabel.text = categoryName; 

      getDetailsData(addressLabel); 

      row.add(placeImage); 
      row.add(nameLabel); 
      row.add(addressLabel); 
      row.add(arrowImage); 

      tableData[i] = row; 

      //set page title for each row 
      row.pageTitle = tableData[i]; 
      row.pageAddress = tableData[i]; 
     } 

     tableView.setData(tableData); 

    }; 

//PlaceList.js 
var currentWindow = Titanium.UI.currentWindow; 
//retrive index value 
var index = Titanium.App.Properties.getInt('index'); 
Ti.API.log('NextView Index:'+index); 

var title = Titanium.App.Properties.getString('title'); 
Ti.API.log('CheckInView Title:'+title); 

var address = Titanium.App.Properties.getString('address'); 
Ti.API.log('CheckInView Address:'+address); 

enter image description here

我的問題是,我不能在接下來的窗口單行標題,但我得到該行的索引值,所以請給我的想法如何獲取它。

+0

你在哪裏設置的行標題,同時創造? – 2012-02-14 06:08:48

+0

我只是在myTableView.addEventListene方法setString我可以設置行標題? plz幫助 – 2012-02-14 06:16:48

+0

請在線聊天http://chat.stackoverflow.com/rooms/7529/discussion-between-muhammad-zeeshan-and-nikunj-r-jadav – 2012-03-12 10:02:51

回答

1

只是這樣做以下行後:

VAR行= Titanium.UI.createTableViewRow({高度: '自動'});

設置一個標題爲你這樣的行屬性:

row.pageTitle =資料表[I]

然後點擊事件,你可以得到這個屬性是這樣的:

myTableView.addEventListener('click',function(e) 
{ 
    e.rowData.pageTitle 
} 
+0

非常感謝它的工作! – 2012-02-14 06:50:35

+0

PLZ看到我的更新屏幕截圖,我想在下一個窗口中分別獲取名稱和地址給我的想法。與我聊天 – 2012-02-14 07:53:37

+0

只要通過這些以及一個新的屬性,就像我在答案中所做的那樣。 – 2012-02-14 08:44:40