Как контролировать поток нескольких 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,

Другие вопросы по тегам