显示最老的帖子而不是实际的帖子 - RSS提要 - Titanium mobile

时间:2012-02-21 08:28:49

标签: mobile titanium

我正在尝试根据kitchen.sink XML RSS制作RSS Feed。

我想要做的是在表视图中获取RSS提要 - 当您点击“新闻帖子”时,您将进入一个新窗口 - 当我想在下一个窗口显示XML时,我得到来自OLDEST帖子的值而不是您点击的特定帖子 - 感谢任何帮助。

Ti.include('strip_tags.js');
// create table view data object
var data = [];

var xhr = Ti.Network.createHTTPClient();
//xhr.open("GET","http://v2.0.news.tmg.s3.amazonaws.com/feeds/news.xml");
xhr.open("GET","http://www.aftonbladet.se/kultur/rss.xml")
xhr.onload = function()
{
try
{
var doc = this.responseXML.documentElement;
var items = doc.getElementsByTagName("item");
var x = 0;
var doctitle = doc.evaluate("//channel/title/text()").item(0).nodeValue;
for (var c=0;c<items.length;c++)
{
  var item = items.item(c);
  /*var thumbnails = item.getElementsByTagName("media:thumbnail");
  if (thumbnails && thumbnails.length > 0)
  {
    var media = thumbnails.item(0).getAttribute("url");*/
    var date = item.getElementsByTagName("pubDate").item(0).text;
    var title = item.getElementsByTagName("title").item(0).text;
    var description = item.getElementsByTagName("description").item(0).text;
    var row = Ti.UI.createTableViewRow({height:80});

    /*Skapar en rubrik */
    var label = Ti.UI.createLabel({
      text:title,
      left:25,
      top:20,
      bottom:5,
      right:5
    });
    row.add(label);

    /*Skapar ett datum */
    var label1 = Ti.UI.createLabel({
      text:date,
      left:25,
      top:-30,
      bottom:5,
      right:5
    });
    row.add(label1);        

    /*var img = Ti.UI.createImageView({
      url:media,
      left:5,
      height:60,
      width:60
    });
    row.add(img);*/
    data[x++] = row;
    row.url = item.getElementsByTagName("link").item(0).text;
  //}
}
var tableview = Titanium.UI.createTableView({data:data});
Titanium.UI.currentWindow.add(tableview);
tableview.addEventListener('click',function(e)
{

/* Skapa window som artikeln kommer upp i */    
var w = Ti.UI.createWindow({
    title:doctitle
    });
/* Skapa en label som visas i windowet */   
var label2 = Titanium.UI.createLabel({
color:'#999',
text:date,
      left:10,
      top:-380,
      bottom:5,
      right:5,
font:{fontSize:20,fontFamily:'Helvetica Neue'},
});

var label3 = Titanium.UI.createLabel({
color:'#999',
text:description,
left:10,
top:-180,
bottom:5,
right:5,
font:{fontSize:20,fontFamily:'Helvetica Neue'},
});     

w.add(label2);
w.add(label3);

  var b = Titanium.UI.createButton({
    title:'Tillbaka',
    style:Titanium.UI.iPhone.SystemButtonStyle.PLAIN
  });
  w.setLeftNavButton(b);
  b.addEventListener('click',function()
  {
    w.close();
  });
  w.open({modal:true});
});
}
catch(E)
{
alert(E);
}
};
xhr.send();

1 个答案:

答案 0 :(得分:0)

1-您应该在函数外定义表。

var tableview = Titanium.UI.createTableView({});

2-将数据设置为函数内的表格。

tableView.setData(data);

3-在tableview的click事件中创建新的窗口元素。

tableview.addEventListener('click',function(e)
{
   Ti.API.info(e.rowData.date);
}

4-在for循环中设置行属性以获取标签数据。

row.date = date;