J2me中在MIDlet中控制跳转

以前写j2me的项目的时候,往往是一个页面(Canvas或者form)跳到领一个页面(Canvas或者form),这样做的优点是:写代码比较直观,能够直接看到流程。缺点是:维护修改的时候必须要看懂每一个页面的代码,去寻找跳转的语句。

最近学了一个新的思想就是在MIDlet中写一个专门用来跳转的方法来控制跳转比较好。

 

1.MIDlet代码

例如:AppMian.java文件代码如下:

 
import javax.microedition.lcdui.Display;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;


public class AppMian extends MIDlet {
	
	private Display dis;
	private MyCanvas mc;
	public AppMian() {
		dis=Display.getDisplay(this);
		mc=new MyCanvas(this);
	}
	protected void startApp() throws MIDletStateChangeException {
	}
	//changeCanvas方法用来控制跳转,别的canvas通过调用这个方法实现跳转
	public void changeCanvas(String CanvasStr){
		if(CanvasStr.equals("mc")){
			dis.setCurrent(mc);
		}
	}
	protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
	}
	protected void pauseApp() {
	}
}

2.其他的Canvas中可以调用这个方法实现跳转

例如:MyCanvas 文件代码如下:

 

import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;


public class MyCanvas extends Canvas{
	
	private AppMian app;//通过app变量来实现MIDlet
	public MyCanvas(AppMian appMain){//构造方法中赋值
		this.app=appMain;
	}
	protected void keyPressed(int keyCode) {
		if(keyCode==Canvas.KEY_NUM5){
			app.changeCanvas("mc");//向MIDlet方法中传回一个值制定跳转
		}
	}
	protected void paint(Graphics arg0) {
	}
}

 

这样其他的Canvas也可以通过调用changeCanvas这个方法向MIDlet中传值,通过MIDlet来实现跳转了。

你可能感兴趣的:(J2me中在MIDlet中控制跳转)