我正在尝试为我的应用程序创建一个帮助/关于屏幕,但我发现,我的代码太糟糕了。 (我知道它可以使用一些重构,但是当使用新框架时,我会先让代码工作,然后立即返回并重构“正确地”执行任务)。在黑莓上创建应用程序信息/帮助屏幕
首先,我在做什么并没有“感觉”像做的正确的方式。我不确定只是将一堆文本字段填充到布局中 - 有没有更好的方法来实现?
其次,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);
}
}
谢谢 - 我会试试看,我知道一些重构克会有所帮助;当使用新的框架时,我倾向于“让它工作”,然后返回并立即重构。 “不正确的感觉”来自于这样一个事实,即使用一堆文本字段似乎有点令人费解。另一方面,或许那*是正确的方式。 – MikeyB 2009-06-25 03:19:42