今天将发送短信的程序界面完善了一下。加入了输入内容和号码的输入框;
在listener的时候做了一个判断, if((textFieldNumber.getString() != null)&&(!("".equals(textFieldNumber.getString())))){
str = textFieldNumber.getString();
}
if((textFieldMessage.getString() != null)&&(!("".equals(textFieldMessage.getString())))){
str2 = textFieldMessage.getString();
}
在getString不为空且不为空字符串时,将内容赋值给一个String。先判断第一个输入框输入的内容是否为空,不为空加载第二个form。判断两个输入框内容都不为空的时候,执行发送短信的方法。
开始时只判断了是否为空,而没判断是否为空字符串。所以发送短信的方法不论怎样都会执行。因为textField的getString方法无论怎么样都不是NULL,若不填写只会是空字符串。
具体代码如下:
package com.sms;
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.TextBox;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
public class SendMessage extends MIDlet implements CommandListener{
private Alert alert;
private Alert alert2;
private TextField textFieldNumber;
private TextField textFieldMessage;
private Display display;
private Form form;
private Form form2;
private Command commandOk;
private Command commandBack;
private String str = null;
private String str2 = null;
public SendMessage() {
display = Display.getDisplay(this);
alert = new Alert("即将发送短信,请填写号码及内容");
commandOk = new Command("确定", Command.OK, 1);
commandBack = new Command("返回", Command.BACK, 2);
textFieldNumber = new TextField("号码", "", 20, TextField.NUMERIC);
textFieldMessage = new TextField("信息内容", "", 20, TextField.ANY);
form = new Form("发送短信-号码");
form.append(textFieldNumber);
form.addCommand(commandOk);
form.addCommand(commandBack);
form.setCommandListener(this);
form2 = new Form("发送短信-信息");
form2.append(textFieldMessage);
form2.addCommand(commandOk);
form2.addCommand(commandBack);
form2.setCommandListener(this);
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO Auto-generated method stub
}
protected void pauseApp() {
// TODO Auto-generated method stub
}
protected void startApp() throws MIDletStateChangeException {
// TODO Auto-generated method stub
display.setCurrent(form);
}
public void commandAction(Command cmd, Displayable d) {
System.out.println("-----["+textFieldNumber.getString());
if((textFieldNumber.getString() != null)&&(!("".equals(textFieldNumber.getString())))){
str = textFieldNumber.getString();
}
if((textFieldMessage.getString() != null)&&(!("".equals(textFieldMessage.getString())))){
str2 = textFieldMessage.getString();
}
if (cmd == commandBack) {
try {
destroyApp(true);
} catch (MIDletStateChangeException e) {
e.printStackTrace();
}
notifyDestroyed();
} else if (cmd == commandOk) {
if(str != null){
display.setCurrent(form2);
if((str!=null)&&(str2!=null)){
Send send=new Send(str2,str);
}
}
}
alert2 = new Alert("发送成功。。。");
}
public boolean isNumber(){
return false;
}
}