?? formidlet.java
字號:
package com.j2medev.chapter4;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.rms.*;
public class ForMIDlet extends MIDlet implements CommandListener{
private Display display = null;
private List list = null;
private RecordStore rs = null;
public static final Command exitCommand = new Command("退出",Command.EXIT,1);
public static final Command deleteCommand = new Command("刪除",Command.OK,2);
public void startApp() {
initMIDlet();
}
private void initMIDlet(){
if(display == null)
display = Display.getDisplay(this);
openDatabase();
//從RecordStore讀取記錄數據
String[] record = getRecord();
if(record != null){
list = new List("記錄集合",List.IMPLICIT, record,null);
list.setSelectCommand(deleteCommand);
list.addCommand(exitCommand);
list.setCommandListener(this);
display.setCurrent(list);
}else{
displayError();
}
}
//如果不能正確讀取RecordStore中的數據則顯示錯誤信息
private void displayError(){
Form form = new Form("結果");
form.append("讀取數據記錄出錯");
display.setCurrent(form);
}
//使用for循環的方式讀取RecordStore中的記錄,注意這種方式不應該被采用。
private String[] getRecord(){
String[] record = null;
try{
int length = rs.getNumRecords();
record = new String[length];
for(int i = 1;i<=length;i++){
byte[] data = rs.getRecord(i);
//recordId的初始值為1,數組索引從0開始。
record[i-1] = new String(data);
}
}catch(RecordStoreException e){
record = null;
e.printStackTrace();
}
return record;
}
//初始化RecordStore數據
private void openDatabase(){
try{
rs = RecordStore.openRecordStore("forloop1",true);
if(rs.getNumRecords() <= 0){
for(int i = 1;i<6;i++){
String s = "記錄"+i;
byte[] data = s.getBytes();
rs.addRecord(data, 0,data.length);
}
}
}catch(RecordStoreException e){
e.printStackTrace();
}
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command cmd,Displayable displayable){
if(cmd == exitCommand){
destroyApp(false);
notifyDestroyed();
}else if(cmd == deleteCommand){
//刪除記錄并重新設置List
int index = list.getSelectedIndex();
try{
rs.deleteRecord(index+1);
}catch(RecordStoreException e){
e.printStackTrace();
}
String[] record = getRecord();
if(record == null){
displayError();
}else{
list.deleteAll();
for(int i = 0;i<record.length;i++){
list.append(record[i],null);
}
display.setCurrent(list);
}
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -