2

2つのxmlファイル用にLWUITj2me(java)を使用してRssFeedアプリケーションを開発しました。次に、これらの2つのxmlファイルをLWUITタブに表示します。

つまり、アプリケーションを実行すると、デフォルトのタブが表示され(そのタブに、最初のRss xmlファイルのタイトルが表示されます)、ユーザーがtab2をクリックすると、2番目のRssxmlタイトルが表示されます。

1つの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();     
}
}
4

1 に答える 1

3

コードの下に移動する必要があります

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コンストラクターへXMLMidletaddNewsメソッドは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

于 2012-08-16T21:17:13.160 に答える