我可能看起来很无知,但我还没有找到太多关于如何解决开发我的 BlackBerry 应用程序的问题的信息。
基本上我已经构建了一个包含一些图像按钮的 UI。我想要做的是当我单击其中一个按钮时,我希望屏幕中央的图像无缝切换到另一个图像。
我目前没有使用任何线程,但从我收集到的内容中我需要吗?
还是我只需在按钮侦听器中按下一个新屏幕并调用类的构造函数并用不同的图像重建页面?
抱歉,如果不清楚,我将非常感谢有关如何执行此操作的一些基本信息或详细解释黑莓页面刷新的链接!
非常感谢
编辑:好的,这是我代码的一小部分:
这基本上是我在听众中尝试的最后一件事,当我按下两个按钮之一时,我不知道如何更改图像(flagField)!唯一对我有用的是 pushScreen(new Csps("americanflag")); 每次我都会按下一个按钮,但性能很差,而且我只剩下一堆屏幕,不理想。
我整天都在尝试这样做,呵呵......叹息,这里是:
public class CSP extends UiApplication
{
public static void main(String[] args)
{
CSP theApp = new CSP();
theApp.enterEventDispatcher();
}
public CSP()
{
CSPS csps = new CSPS();
pushScreen(csps);
}
}
class CSPS extends MainScreen implements FieldChangeListener
{
int width = Display.getWidth();
int height = Display.getHeight();
ButtonField backButton;
ImageButtonField canadianFlag;
ImageButtonField americanFlag;
Bitmap changeableFlag;
String currentFlag ="canada_flag.png";
BitmapField flagField;
canadianFlag = construct("canada_flag.png", 0.18);
americanFlag = construct("us.gif", 0.18);
canadianFlag.setChangeListener(this);
americanFlag.setChangeListener(this);
add(flagField);
add(canadianFlag);
add(americanFlag);
//LISTENERS
public void fieldChanged(Field field, int context){
if(field == canadianFlag){
setCurrentFlagResource("canada_flag.png");
BitmapField newFlagField = populateFlagField(currentFlag, 0.3);
replace(flagField, newFlagField);
this.invalidate();
this.doPaint();
this.updateDisplay();
}
else if(field == americanFlag){
setCurrentFlagResource("american-flag.gif");
BitmapField newFlagField = populateFlagField(currentFlag, 0.3);
replace(flagField, newFlagField);
this.invalidate();
this.doPaint();
this.updateDisplay();
}
setCurrentFlagRessource 方法将 flagField 属性设置为适当的 BitmapField