📄 delet05.java
字号:
package flow;
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.Choice;
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.List;
import javax.microedition.lcdui.TextField;
import javax.microedition.rms.InvalidRecordIDException;
import javax.microedition.rms.RecordEnumeration;
import javax.microedition.rms.RecordStore;
import javax.microedition.rms.RecordStoreException;
import javax.microedition.rms.RecordStoreFullException;
import javax.microedition.rms.RecordStoreNotFoundException;
import javax.microedition.rms.RecordStoreNotOpenException;
import rms.Account;
public class delet05 extends List implements CommandListener {
// private TextField Delet;
private RecordStore recordStore;
private int[] data2;// 声明一数组;
private Display display;
private Command deletcmd = new Command("删除", Command.OK, 3);
private Command backcmd5 = new Command("返回", Command.BACK, 5);
private List main;
public delet05(Display display5, List main5) {
super("删除界面", Choice.MULTIPLE);
this.display = display5;
this.main = main5;
addCommand(deletcmd);
setCommandListener(this);
addCommand(backcmd5);
readInfo();
}
// 下面的思路为,先打开数据库readInfo();再re.reset();返回到初始状态;
public void readInfo() {
try {
recordStore = RecordStore.openRecordStore("tel", true);// 在每一个新程序中,需先打开数据库然后再进行其它程序的写入
} catch (RecordStoreFullException e1) {
e1.printStackTrace();
} catch (RecordStoreNotFoundException e1) {
e1.printStackTrace();
} catch (RecordStoreException e1) {
e1.printStackTrace();
}
RecordEnumeration re = null;// RecordEnumeration枚举函数,在读取时使用
try {
re = recordStore.enumerateRecords(null, null, true);// 过滤,比较,更新
} catch (RecordStoreNotOpenException e1) {
e1.printStackTrace();
}
while (re.hasNextElement()) {
byte[] data = null;
try {
data = re.nextRecord();
} catch (InvalidRecordIDException e1) {
e1.printStackTrace();
} catch (RecordStoreNotOpenException e1) {
e1.printStackTrace();
} catch (RecordStoreException e1) {
e1.printStackTrace();
}
Account ra = Account.decode(data);// 先由Account声明ra
// ,再由ra接收Account.decode(data)
// 因decode属于取出的方法,故不能像AddFirend02中的encode那样使用
append("姓名:" + ra.getName(), null);
}
re.reset();// 返回到初始状态;
int size = re.numRecords();// 声明一个 size的数据长度;numRecords代表数据长度(固定用法);
data2 = new int[size];// 对data2初始化;
int i = 0;// 定义 一个整型;
while (re.hasNextElement()) {//
try {
data2[i] = re.nextRecordId();// nextRecordId获取第i项中的ID;
i++;
} catch (Exception e) {
e.printStackTrace();
}
}
}
public void commandAction(Command c5, Displayable d) {
if (c5 == backcmd5) {
display.setCurrent(main);
try {
recordStore.closeRecordStore();
} catch (RecordStoreNotOpenException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RecordStoreException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else if (c5 == deletcmd) {
boolean[] selet = new boolean[this.size()];
this.getSelectedFlags(selet);// getSelectedFlags属于多项选择,而getSelectedIndex属于单项选择;
for (int i = 0; i < selet.length; i++) {
if (selet[i]) {// 当selet[第i项],if(selet[i]是在判断其为真的情况下;
try {
recordStore.deleteRecord(data2[i]);// deleteRecord代表被删除记录的ID不会被新增的记录重用
} catch (RecordStoreNotOpenException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvalidRecordIDException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RecordStoreException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 当上述为true时,删除选中的,而若为false则不删,为false也无需写出;
}
}
Alert alert = new Alert("删除成功");
display.setCurrent(alert);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -