indexlist.java
来自「Online Map for Mobile」· Java 代码 · 共 74 行
JAVA
74 行
import javax.microedition.lcdui.*;
public class IndexList extends List implements CommandListener {
BrowserCanvas canvas;
String prefix;
Index index;
Displayable parent;
static final int MAX_LENGTH = 32;
IndexList(BrowserCanvas canvas, Index index, String prefix, Displayable parent) {
super(index.name, IMPLICIT);
this.canvas = canvas;
this.index = index;
this.prefix = prefix;
this.parent = parent;
for (int i = 0; i < index.objects.length; i++) {
if (index.objects[i].name.toLowerCase().startsWith(prefix)) {
append(index.objects[i].name, null);
}
}
if (size() == 0) {
canvas.browser.error(Locale.current.getResource("No items"), parent);
} else {
addCommand(MapBrowser.SEARCH_CMD);
addCommand(MapBrowser.SELECT_CMD);
addCommand(MapBrowser.BACK_CMD);
if (index.type == Index.POINT) {
addCommand(MapBrowser.ALL_CMD);
}
setCommandListener(this);
Display.getDisplay(canvas.browser).setCurrent(this);
}
}
public void commandAction(Command c, Displayable d)
{
if (c == MapBrowser.SEARCH_CMD) {
new SearchForm(canvas, index, this);
} else if (c == MapBrowser.ALL_CMD) {
Location[] locations = new Location[size()];
for (int i = 0, j = 0; i < index.objects.length; i++) {
if (index.objects[i].name.toLowerCase().startsWith(prefix)) {
locations[j++] = index.objects[i];
}
}
canvas.setPositions(index, locations);
Display.getDisplay(canvas.browser).setCurrent(canvas);
} else if (c != MapBrowser.BACK_CMD) {
int n = getSelectedIndex();
if (n >= 0) {
int i = 0;
while (!index.objects[i].name.toLowerCase().startsWith(prefix) || --n >= 0) {
i += 1;
}
if (index.type == Index.SUBINDEX) {
new IndexList(canvas, (Index)index.objects[i], "", this);
} else {
if (index.objects[i].info != null ||index.objects[i].image != null ) {
new InfoForm(canvas, index, index.objects[i], this);
} else {
canvas.setPositions(index, new Location[]{index.objects[i]});
Display.getDisplay(canvas.browser).setCurrent(canvas);
}
}
}
} else {
Display.getDisplay(canvas.browser).setCurrent(parent);
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?