如何控制多个 Rss 文件的流
Posted
技术标签:
【中文标题】如何控制多个 Rss 文件的流【英文标题】:How to control flow of multiple Rss Files 【发布时间】:2012-08-16 14:11:31 【问题描述】:我使用 LWUIT j2me(java) 为 2 个 xml 文件开发了 RssFeed 应用程序,现在我想在 LWUIT 选项卡上显示这 2 个 xml 文件。
这意味着,当我的应用程序运行时,将显示默认选项卡(在该选项卡上应显示我的第一个 Rss xml 文件标题),并且当用户单击 tab2 时,应显示我的第二个 Rss xml 标题。
我可以在两个选项卡上显示一个 rss 文件的相同标题,如何控制我的流程以完成我的任务?
这是我的代码:
public class XMLMidlet extends MIDlet implements ActionListener
public XMLMidlet()
Display.init(this);
news = new Vector();
m_backCommand = new Command("Back");
cmdExit = new Command("EXIT");
cmdDetails = new Command("Details");
public void startApp()
//RssFeed URL's
String urls[] = "http://topnews-23.rss",
"http://topstory-12.rss";
for(int i=0;i<urls.length;i++)
ParseThread myThread = new ParseThread(this,urls[i]);
//this will start the second thread
myThread.getXMLFeed(urls[i]);
//method called by the parsing thread
public void addNews(News newsItem,String url)
try
news.addElement(newsItem);
form1 = new Form();
myNewsList = new List(newsVector);
newsList =new List(newsVector);
myNewsList.setRenderer(new NewsListCellRenderer());
newsList.setRenderer(new NewsListCellRenderer());
tabs=new Tabs(Component.TOP);
tabs.addTab("TopNews", myNewsList);
tabs.addTab("Topstory",newsList);
form1.addComponent(tabs);
form1.show();
catch(Exception e)
e.printStackTrace();
【问题讨论】:
【参考方案1】:你应该移到下面的代码
myNewsList = new List(newsVector);
newsList =new List(newsVector);
myNewsList.setRenderer(new NewsListCellRenderer());
newsList.setRenderer(new NewsListCellRenderer());
tabs=new Tabs(Component.TOP);
form1 = new Form();
tabs=new Tabs(Component.TOP);
tabs.addTab("TopNews", myNewsList);
tabs.addTab("Topstory",newsList);
从addNews
方法到构造函数XMLMidlet
。 addNews
方法应使用 url
参数来区分 newsItem
指向的列表。
更新
以下是我认为你应该如何实现addNews
方法:
public void addNews(News newsItem, String url)
if (url.endsWith("topnews-20.rss"))
myNewsList.addElement(newsItem);
else if (url.endsWith("topstory-25.rss"))
newsList.addElement(newsItem);
serRenderer
不需要从addNews
调用,form1.show()
应该移动到startApp
。
【讨论】:
以上是关于如何控制多个 Rss 文件的流的主要内容,如果未能解决你的问题,请参考以下文章