-2

リスト フィールドにニュースを表示するプロジェクトを行っています。ニュースは Web サービスから XML で返されます。ブラックベリーの Java は初めてなので、ブラウジング、調査、質問をすることで、ある程度の進歩を遂げました。

私はすることができました

  1. Web サービスから返された xml をフェッチする

  2. DOM/SAX パーサーを介して xml を解析する

  3. ベクトルにデータを追加する

  4. リストフィールドを使用してデータを表示する

問題: ユーザーが現在、ユーザーが意識せずにリストを表示またはスクロールしていると仮定して、新規または現在のニュース (データ) でリスト フィールドを更新するにはどうすればよいですか。

提案: 私のちょっとした調査から、これは Observer パターンを使用して達成できることを発見しました。どのように?可能であれば、サンプル コードまたはスニペット。

4

2 に答える 2

1

まず、オブザーバー パターンは、リモート データの変更をリッスンする方法がある場合にのみ意味があります (つまり、データが変更されたときにサーバーが BB にプッシュ メッセージを配信した場合)。データをプルする必要があるため、何も聞いていません。必要なのは、各 WS 呼び出しの後にリストを更新することだけです。

リストを更新するには、ObjectListFieldクラスのメソッドを見てください。単一の行を挿入および削除できます。1 つまたは複数の行を更新するには、配列全体を設定する必要があります。変更後、フィールドで無効化を呼び出すだけです。

于 2013-01-09T10:24:35.050 に答える
-1

Java ライブラリには、Observer インターフェイスと Observable クラスがあります。観察したいオブジェクト (この場合は listField) が Observable クラスを継承するようにします。次に、Observer インターフェイスを実装するクラスを作成します。このクラスは、データを更新するクラスです。詳細: http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Observer.html

問題は、観察可能なオブジェクトがオブザーバーに警告するためにステータスを変更する必要があり、オブザーバーがデータを更新することです。しかし、私が見るように、パターンの強制的な実装です。もっと調べてみることをお勧めします。

于 2013-01-08T20:45:46.310 に答える