Как контролировать поток нескольких Rss файлов
Я разработал приложение RssFeed, используя LWUIT j2me(java) для 2-х XML-файлов, теперь я хочу показать эти 2-х XML-файлы на вкладках LWUIT.
Это означает, что когда мое приложение запускается, отображается вкладка по умолчанию (на этой вкладке должен отображаться мой первый заголовок XML-файла Rss), а когда пользователь нажимает на вкладку 2, должны отображаться мои вторые заголовки XML-файла Rss.
Я могу отображать одинаковые заголовки одного и того же 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
,