Вы можете реализовать его как массив экранов и подтолкнуть их в круг. но не забудьте вытащить текущий экран перед нажатием нового.
Это приложение будет обрабатывать экранный переключатель, а также будет обрабатывать экранный массив. Но меню помещается на экран, поэтому мы должны сделать некоторую связь между экраном и классом приложения.
Давайте есть слушателю для переключения экранов:
interface IBarrelListener {
public void goPreviouse();
public void goNext();
}
Теперь мы можем реализовать экран с этим слушателем и соответствующее меню:
class ABarrelScreen extends MainScreen {
IBarrelListener mBarrelListener;
public ABarrelScreen(IBarrelListener barrelListener) {
super();
mBarrelListener = barrelListener;
}
protected void makeMenu(Menu menu, int instance) {
super.makeMenu(menu, instance);
menu.add(goPreviouseMenuItem);
menu.add(goNextMenuItem);
}
MenuItem goPreviouseMenuItem = new MenuItem("go previouse", 0, 0) {
public void run() {
mBarrelListener.goPreviouse();
};
};
MenuItem goNextMenuItem = new MenuItem("go next", 0, 0) {
public void run() {
mBarrelListener.goNext();
};
};
}
И само приложение класса:
public class ScrCircleApp extends UiApplication implements IBarrelListener {
ABarrelScreen[] mScreens = generateScreens();
int mCurrentScreen = 0;
public ScrCircleApp() {
pushScreen(mScreens[mCurrentScreen]);
}
public static void main(String[] args) {
ScrCircleApp app = new ScrCircleApp();
app.enterEventDispatcher();
}
private ABarrelScreen[] generateScreens() {
ABarrelScreen[] screens = new ABarrelScreen[6];
for (int i = 0; i < screens.length; i++) {
screens[i] = new ABarrelScreen(this);
screens[i].add(new LabelField("This is screen # "
+ String.valueOf(i)));
}
return screens;
}
public void goNext() {
popScreen(mScreens[mCurrentScreen]);
mCurrentScreen++;
if (mCurrentScreen >= mScreens.length)
mCurrentScreen = 0;
pushScreen(mScreens[mCurrentScreen]);
}
public void goPreviouse() {
popScreen(mScreens[mCurrentScreen]);
mCurrentScreen--;
if (mCurrentScreen < 0)
mCurrentScreen = mScreens.length - 1;
pushScreen(mScreens[mCurrentScreen]);
}
}
alt text http://img526.imageshack.us/img526/2372/screenbarrel.jpg
Вот что мне нужно, и все это есть. U bang @ spot каждый раз. Благодарю. – Bohemian
Добро пожаловать! –