正 文

MIDlet中实现程序管理器和多语言程序


www.7dspace.com  更新日期:2005-12-3 4:59:54  七度空间


  在MIDlet编程中,很多系统的属性要通过一个MIDlet实例来访问,比如Display.getDisplay,那么在需要切换界面的类里面你必须把MIDlet实例或者Display实例传送给他,尤其在设计弹出和可以返回的界面时。没有更好的办法吗?又比如程序的暂停功能,有没有根方便的方法把他们集成起来?还有错误处理,程序退出等等,利用以往的方法是不是很不爽?

  嗯,真是不爽,于是我写了这个程序管理器:App。首先看他的组织方式:

static App instance;
Display disp_;
MIDlet app_;
public static void createInstance(MIDlet app)
{
 if(instance==null)
  instance=new App();
  instance.app_=app;
  instance.disp_=Display.getDisplay(app);
}
private App()
{}

  每个MIDlet只需要一个管理器,所以只允许一个实例。这样,我们就可以通过静态方法提供一些系统参数的访问方法:

public static String getProperty(String name)
{
 return instance.app_.getAppProperty(name);
}
public static Display getDisplay()
{
 return instance.disp_;
}

  他还应该提供返回前一屏的功能,如何实现呢?既然有了display,难道每次还是要App.getDisplay().setCurrent(xxx)?索性提供一个App.setCurrent():

public static void setCurrent(Displayable d)
{
 if(d!=instance.old_)
 {
  instance.old_=instance.disp_.getCurrent();
  instance.disp_.setCurrent(d);
 }
}

  对了,我们就利用这个来实现切换到前一屏的功能:

public static void restore()
{
 if(instance.old_!=null)
 {
  instance.disp_.setCurrent(instance.old_);
  instance.old_=null;
 }
}

4页,页码:[1] [2] [3] [4] 

上一篇:用Photoshop精细绘制飘逸发丝
下一篇:ASP+SQL Server构建网页防火墙
作者:黑洞  来源:J2ME开发网 ( 责任编辑:7dspace )
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐