2

BlackBerryでヘッダーとフッターを設定する方法を検索したところ、関数setTitle()とが見つかりましたsetStatus()

私の問題は、を拡張するクラスを作成したことVerticalFieldManagerです。では、これはクラスの関数であるため、関数をVerticalFieldManager表示していません。setStatusMainScreen

4

1 に答える 1

2

あなたが正しい。Aでは直接VerticalFieldManagerできません。setStatus()

BlackBerryUIフレームワークのクラス間の関係を理解することが重要です。

まず、Screenクラスがあります。通常、aScreenはデバイス画面全体を占めます。アプリにはさまざまなScreenクラスを含めることができます。たぶんScreen、スプラッシュ画像用に1つ、マップビュー用に1つの画面、設定用に1つの画面などです。

画面内には、多くの場合、Managerクラスがあります。Aは、コンテンツを追加した順に上から下に並べるVerticalFieldManager種類です。ManagerAManagerは関連するオブジェクトのグループを保持しますが、画面全体の高さまたは幅にまたがる必要はありません。

マネージャーの内部Fieldには、通常、複数のオブジェクトがあります。AFieldは、階層内の個々のアイテムです。 ButtonField、、EditFieldまたはBrowserFieldはすべての種類のフィールドです。それらは通常、マネージャー(コンテナー)に追加されます。これらのマネージャーは通常、画面に追加されます。

ですから、あなたの場合、あなたが持っているべきものはスクリーンクラスだと思います。その画面クラスでは、とを呼び出してヘッダーフッターを設定します。ヘッダーとフッターの間のコンテンツはすべて、画面に追加するに含まれます。このようなもの:setTitle()setStatus()VerticalFieldManager

public class MyScreen extends MainScreen {

   public MyScreen() {
      super(MainScreen.VERTICAL_SCROLL | MainScreen.VERTICAL_SCROLLBAR);

      // set a header for this screen
      setTitle("My Header / Title");

      // screen contents go in the vertical field manager

      // NOTE:  you can replace VerticalFieldManager with your own class
      //   that extends Manager, or VerticalFieldManager, if you like
      VerticalFieldManager vfm = new VerticalFieldManager();
      vfm.add(new LabelField("One"));
      vfm.add(new ButtonField("Two", ButtonField.CONSUME_CLICK));
      vfm.add(new CheckboxField("Three", true));

      add(vfm);

      // use a bitmap as a footer
      Bitmap footer = Bitmap.getBitmapResource("footer.png");
      setStatus(new BitmapField(footer));
   }
}
于 2013-02-28T22:15:02.697 に答える