私のアプリケーションのヘルプ/バージョン情報画面を作成しようとしていますが、私のコードはうんざりです。 (私は少しリファクタリングを使うことができると知っていますが、新しいフレームワークを使って作業するときには、コードが最初に動作し、すぐに戻ってリファクタリングして「正しく」行うことができます)。Blackberryでのアプリケーション情報/ヘルプ画面の作成
まず、私がやっていることは、それを行う正しい方法のように「感じる」ことはありません。私はレイアウトにたくさんのテキストフィールドを詰め込んでいるのか分かりません。そうする方がいいですか?
第2に、VFMが画面の大部分を占めていて、「閉じる」ボタンを押し下げています。私がしようとしているのは、タイトルと「閉じる」ボタンを表示したままで、VFMをスクロールするだけです。
どのようにこれらの問題を解決できますか?機能的に、それは罰金だが、リファクタリングのビットは少しそれをクリーンアップすることができ - - コードの場合
public class HelpScreen extends PopupScreen {
public HelpScreen() {
super(new VerticalFieldManager(), Field.FOCUSABLE);
/* Construct the Close button */
FieldChangeListener listener = new FieldChangeListener() {
public void fieldChanged(Field field, int context) {
ok();
}
};
ButtonField b = new ButtonField("Close", Field.FIELD_HCENTER);
b.setChangeListener(listener);
/* Construct the text box containing the help */
VerticalFieldManager vfm = new VerticalFieldManager(VERTICAL_SCROLL);
TextField f;
vfm.add(f = new TextField(FIELD_LEFT | READONLY));
f.setText("My application does stuff. This part is the description of what it does.");
vfm.add(f = new TextField(FIELD_LEFT | READONLY));
vfm.add(f = new TextField(FIELD_LEFT | READONLY));
f.setText("Commands:");
vfm.add(f = new TextField(FIELD_LEFT | READONLY));
f.setText("N - New Widget");
vfm.add(f = new TextField(FIELD_LEFT | READONLY));
f.setText("R - Rename Widget");
vfm.add(f = new TextField(FIELD_LEFT | READONLY));
f.setText("D - Duplicate Widget");
vfm.add(f = new TextField(FIELD_LEFT | READONLY));
f.setText("C - Clear Widget");
vfm.add(f = new TextField(FIELD_LEFT | READONLY));
f.setText("Shift-Delete - Delete Widget");
/* Construct the screen */
add(new LabelField("About Widget Wiffleball", Field.FIELD_HCENTER));
add(new SeparatorField());
add(vfm);
add(b);
}
public void ok() {
UiApplication.getUiApplication().popScreen(this);
}
}
ありがとう - 私はそれを試してみます。私はいくつかのrefactorin gは助けになるでしょう。新しいフレームワークを使って作業するとき、私はちょうど "働かせて"次に戻ってすぐにリファクタリングする傾向があります。 「気分が悪い」というのは、たくさんのテキストフィールドを使うのはちょっとハックされているという事実から来ています。一方、おそらくそれは正しい方法です。 – MikeyB
これを処理するには、メイン画面のステータス部分を使うのも良い方法です。その後、カスタムマネージャーは必要ありません。 –