现在的位置: 首页 > 综合 > 正文

J2ME通讯录代码

2013年09月07日 ⁄ 综合 ⁄ 共 24301字 ⁄ 字号 评论关闭
TR>

花了两天时间搞定了通讯录,基本功能能实现

现在拿出来给大家一起交流,希望大家能找出BUG

截图如下

               

                     

              

                   

 

以下是代码:请保留作者版权,谢谢

 

 

 

 

 
//=====================MessageMIDlet主类=============================== 
package messagemidlet; 
//主类 
import javax.microedition.midlet.*; 
import javax.microedition.lcdui.*; 
public class MessageMIDlet extends MIDlet  { 
  public static MessageMIDlet messagemidlet; 
  private MenuMIDLet menumidlet = new MenuMIDLet(); 
  /** Constructor */ 
  public MessageMIDlet() { 
    messagemidlet = this; 
  } 
  /** Main method */ 
  public void startApp() { 
    Display.getDisplay(this).setCurrent(menumidlet); 
  } 
  /** Handle pausing the MIDlet */ 
  public void pauseApp() { 
  } 
  /** Handle destroying the MIDlet */ 
  public void destroyApp(boolean unconditional) { 
  } 
  /** Quit the MIDlet */ 
  public static void quitApp() { 
    messagemidlet.destroyApp(true); 
    messagemidlet.notifyDestroyed(); 
    messagemidlet = null; 
  } 
} 
//=========================end================================ 

//=========================SetGet操作用到的属性================================ 
package messagemidlet; 
///JAVA为什么不像c#一样有GET SET 来设置属性,所以麻烦点,我还是喜欢C# 
public class SetGet { 

  public static int Id = 0; 
  public static int DelId = 0; 
  public static int ModId = 0; 
  public static String Str = null; 
  public static boolean IsOK =true ; 
  /** Constructor */ 
  public SetGet() { 
  } 
  public static void SetId(int id){ 
    Id = id; 
  } 
  public static int GetId(){ 
    return Id; 
  } 
  public static void SetDelId(int id) { 
    DelId = id; 
  } 
  public static int GetDelId() { 
    return DelId; 
  } 
  public static void SetModId(int id) { 
    ModId = id; 
  } 
  public static int GetModId() { 
    return ModId; 
  } 
  public static void SetStr(String str){ 
    Str = str; 
  } 
  public static String GetStr(){ 
    return Str; 
  } 
  public static void SetIsTrue(boolean istrue){ 
    IsOK = istrue; 
  } 
  public static boolean GetIsTrue(){ 
    return IsOK; 
  } 
  } 
//=========================end================================ 
//=========================PubClass公共类(集成一些常用属性和方法,方便调用)================================ 
package messagemidlet; 
import javax.microedition.lcdui.*; 
import javax.microedition.rms.*; 
import java.io.*; 
public class PubClass  { 
  public static PubClass pubclass; 
  public Display display; //舞台对象 
  public Command exitCommand; //离开按钮对象 
  public Command selectCommand; //选择按钮对象 
  public Command menuCommand;  //主目录 
  public Command okCommand ; 
  public Command operCommand; 
  public String[] menulist = {'通讯录','关于作者'}; //主菜单选项 
  public String[] mainlist ={'浏览联系人','查找联系人','添加联系人','其他'}; 
  public String[] operatelist={'编辑联系人','删除联系人','全部删除'};  //操作 
  //只需修改personpro属性,其他自动生成,构造 
  public String[] personpro ={'姓名','手机','Email','地址','其他'}; //用户属性 
  public int Length = personpro.length; //用户属性个数 
  public String dataname = 'messages'; //数据库名 
  public boolean existingOrNot = existing(dataname); 
  RecordStore rs = null; 
  public TextField[] person  = new TextField[Length]; 
  public StringItem[] persondetail = new StringItem[Length]; 
  /** 构造函数 */ 
  public PubClass() { 
    for(int i=0;inew  TextField(personpro[i], '', 256, TextField.ANY); 
      persondetail[i] = new  StringItem(personpro[i],''); 
    } 
  } 

  //取得主目录列表 
  public String Get_MenuList(int i){ 
    if(this.mainlist.length<0){ 
      return ''; 
    } 
    return this.menulist[i]; 
  } 
 //取得通讯录列表 
  public String Get_MainList(int j){ 
    if(this.mainlist.length<0){ 
      return ''; 
    } 
    return this.mainlist[j]; 
  } 
  //取得联系人操作列表 
  public String Get_OperateList(int j){ 
  if(this.operatelist.length<0){ 
    return ''; 
  } 
  return this.operatelist[j]; 
} 
//返回关于 
public void Return_AboutMIDlet() { 
  AboutMIDlet aboutmidlet = new AboutMIDlet(); 
  display.getDisplay(MessageMIDlet.messagemidlet).setCurrent(aboutmidlet); 
} 
 //返回主目录 
 public void Return_MainMIDLet() { 
   MainMIDLet mainmidlet = new MainMIDLet(); 
   display.getDisplay(MessageMIDlet.messagemidlet).setCurrent(mainmidlet); 
 } 
 //返回通讯录列表 
  public void Return_MenuMIDLet(){ 
    MenuMIDLet menumidlet = new MenuMIDLet(); 
    display.getDisplay(MessageMIDlet.messagemidlet).setCurrent(menumidlet); 
  } 
  //返回联系人列表 
  public void Return_PersonListMIDLet(){ 
    PersonListMIDlet personlistmidlet = new PersonListMIDlet(); 
    display.getDisplay(MessageMIDlet.messagemidlet).setCurrent(personlistmidlet); 
  } 
  //返回查找联系人 
  public void Return_SearchPersonMIDlet(){ 
  } 
  //返回添加联系人 
  public void Return_AddPersonMIDLet(){ 
    AddPersonMIDLet addpersonmidlet = new AddPersonMIDLet(); 
    display.getDisplay(MessageMIDlet.messagemidlet).setCurrent(addpersonmidlet); 
  } 
  //返回操作 
  public void Return_OperateMIDLet(){ 
    OperateMIDlet operatemidlet = new OperateMIDlet(); 
    display.getDisplay(MessageMIDlet.messagemidlet).setCurrent(operatemidlet); 
  } 
  //返回查找 
  public void Return_SearchMIDlet() { 
    SearchMIDlet searrchmidlet = new SearchMIDlet(); 
    display.getDisplay(MessageMIDlet.messagemidlet).setCurrent(searrchmidlet); 
  } 
  //返回查找结果 
  public void Return_SearchOutMIDlet() { 
    SearchOutMIDlet searrchoutmidlet = new SearchOutMIDlet(); 
    display.getDisplay(MessageMIDlet.messagemidlet).setCurrent(searrchoutmidlet); 
  } 
 //返回编辑 
  public void Return_ModifyPersonMIDlet() { 
    ModifyPersonMIDlet modiftpersonmidlet = new ModifyPersonMIDlet(); 
    display.getDisplay(MessageMIDlet.messagemidlet).setCurrent(modiftpersonmidlet); 
  } 

  //返回联系人详细列表,并传入对应ID值 ModifyPersonMIDlet 
  public void Return_PersonDetailMIDlet(){ 
    PersonDetailMIDlet persondetailmidlet = new PersonDetailMIDlet(); 
    display.getDisplay(MessageMIDlet.messagemidlet).setCurrent(persondetailmidlet); 
  } 
  //警告窗口 
  public void Alert(String alertstring){ 
    Alert alert = new Alert('提示',alertstring,createImage('/images/1.png'),AlertType.ERROR); 
    alert.setTimeout(2000); 
    display.getDisplay(MessageMIDlet.messagemidlet).setCurrent(alert); 
  } 
  //警告窗口,提示后返回MainMIDLet 
  public void Alert(String alertstring,MainMIDLet mainmidlet){ 
    Alert alert = new Alert('提示',alertstring,createImage('/images/1.png'),AlertType.ERROR); 
    alert.setTimeout(2000); 
    display.getDisplay(MessageMIDlet.messagemidlet).setCurrent(alert,mainmidlet); 
  } 
  //警告窗口,提示后返回PersonListMIDlet 
  public void Alert(String alertstring, PersonListMIDlet Personlistmidlet) { 
    Alert alert = new Alert('提示', alertstring, createImage('/images/1.png'),AlertType.ERROR); 
    alert.setTimeout(2000); 
    display.getDisplay(MessageMIDlet.messagemidlet).setCurrent(alert, Personlistmidlet); 
  } 

  //创建图像 
  public static Image createImage(String name){ 
      Image aImage = null; 
      try{ 
         aImage = Image.createImage(name); 
      } 
      catch(IOException e){ 
      } 
      return aImage; 
 } 
//判断数据库是否存在,打开,然会RecordStore对象 
 public RecordStore Open(){ 
   boolean existingOrNot = false; 
   boolean OK = true; 
   existingOrNot = this.existing(dataname); 
   if (existingOrNot) { 
     try { 
       rs = RecordStore.openRecordStore(dataname, false); 
     } 
     catch (Exception e) { 
       OK = false; 
     } 
   } 
     else { 
       try { 
         rs = RecordStore.openRecordStore(dataname, true); 
         OK = true; 
       } 
       catch (Exception e) { 
         OK = false; 
       } 
     } 
       return rs; 
   } 
 //判断字符大小 
 public boolean existing(String recordStoreString) { 
   boolean existingOrNot = false; 
   RecordStore rs = null; 
   if (recordStoreString.length() > 32) 
     return false; 
   try { 
     rs = RecordStore.openRecordStore(recordStoreString, false); 
   } 
   catch (RecordStoreNotFoundException e) { 
     existingOrNot = false; 
   } 
   catch (Exception e) { 
   } 
   finally { 
     try { 
       rs.closeRecordStore(); 
     } 
     catch (Exception e) { 
     } 
   } 
   return existingOrNot; 
 } 
} 

//=========================end================================ 

//=========================PersonClass用户属性类================================ 
package messagemidlet; 
//联系人属性类 
import java.io.*; 
import javax.microedition.rms.*; 
public class PersonClass  { 
  private static PersonClass personclass; 
  //构造公共类实例 
  private PubClass pubclass = new PubClass(); 
  public static int Id = -1; //设置静态ID,赋值后不需要重新构造而不能调用 
  //联系人属性,数组 
  public String[] PersonPro = new String[pubclass.Length] ; 
  public void Write(String[] PersonPro){ 
    for(int i = 0;ithis.PersonPro[i] = PersonPro[i]; 
    } 
  } 
  //设置ID,起修改,删除,显示作用 
  public void SetRecordID(int Id){ 
    this.Id = Id; 
  } 
  //取得ID 
  public static int GetRecordID(){ 
    return Id; 
  } 
  //转换为字节 
  public byte[] changeToByteArray(){ 
  byte[] data = null; 
  try{ 
    ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
    DataOutputStream dos = new DataOutputStream(baos); 
    for(int j=0;j<this.PersonPro.length;j++){ 
      dos.writeUTF(this.PersonPro[j]); 
    } 
    data = baos.toByteArray(); 
    baos.close(); 
    dos.close(); 
  } 
  catch(Exception e){ 
    return null; 
  } 
  return data; 
  } 
  public void changeFromByteArray(byte[] data) { 
    try { 
      ByteArrayInputStream bais = new ByteArrayInputStream(data); 
      DataInputStream dis = new DataInputStream(bais); 
      for(int k=0;kthis.PersonPro[k] = dis.readUTF(); 
      } 
      bais.close(); 
      dis.close(); 
    } 
    catch (Exception e) { 
    } 
  } 
  public String getPerson(int m) { 
    return this.PersonPro[m]; 
  } 
  public String GetListName(int RecordId){ 
    return this.PersonPro[0]; 
  } 

} 

//=========================end================================ 


//=========================MenuMIDLet主目录里表类================================ 
package messagemidlet; 

import javax.microedition.lcdui.*; 
import java.io.*; 
public class MenuMIDLet extends List implements CommandListener { 
  //构造公共类实例 
  private PubClass pubclass = new PubClass(); 
  /** Constructor */ 
  public MenuMIDLet() { 
    super('通讯录',List.IMPLICIT); 
    for(int i=0;ithis.append(pubclass.Get_MenuList(i),pubclass.createImage('/images/tel.png')); 
    } 
    //构造按钮 
    pubclass.selectCommand = new Command('选择', Command.SCREEN, 2); 
    pubclass.exitCommand = new Command('离开', Command.EXIT, 1); 
    //添加监听 
    this.addCommand(pubclass.exitCommand); 
    this.addCommand(pubclass.selectCommand); 
    this.setCommandListener(this); 
  } 
  public void commandAction(Command c, Displayable d) { 
    if(c == pubclass.selectCommand ){ 
      int selectitem = this.getSelectedIndex(); 
     //尽量不使用Switch,用If提高速度,虽然麻烦点,经验所得 
     if (selectitem == 0) { 
       pubclass.Return_MainMIDLet(); 
     } 
     if (selectitem == 1) { 
       pubclass.Return_AboutMIDlet(); 
     } 
   } 
    //退出 
    if(c == pubclass.exitCommand){ 
      MessageMIDlet.quitApp(); 
    } 
  } 
} 
//=========================end================================ 

//=========================AboutMIDlet关于作者类(显示作者信息)================================ 
package messagemidlet; 
import javax.microedition.midlet.*; 
import javax.microedition.lcdui.*; 
import javax.microedition.lcdui.Command; 
import javax.microedition.lcdui.Displayable; 
public class AboutMIDlet  extends Form implements CommandListener { 
  //构造公共类实例 
  private PubClass pubclass = new PubClass(); 
  /** Constructor */ 
  public AboutMIDlet() { 
    super(''); 
    this.setTitle('关于作者'); 
    StringItem stringitem = new StringItem('作者介绍','01网通(2)02号. 姓名:Sukey. 版权所有:Sukey.'); 
    this.append(stringitem); 
    //构造按钮 
    pubclass.menuCommand = new Command('主目录', Command.SCREEN, 1); 
    pubclass.exitCommand = new Command('离开', Command.BACK, 1); 
    //添加监听 
    this.addCommand(pubclass.menuCommand); 
    this.addCommand(pubclass.exitCommand); 
    this.setCommandListener(this); 
  } 
  public void commandAction(Command c, Displayable d) { 
    if(c ==pubclass.menuCommand  ){ 
      pubclass.Return_MenuMIDLet(); 
    } 
    if(c == pubclass.exitCommand){ 
       MessageMIDlet.quitApp(); 
    } 
  } 
} 
//=========================end================================ 

//=========================MainMIDLet通讯录里表类================================ 

package messagemidlet; 
// 
import javax.microedition.lcdui.*; 
public class MainMIDLet extends List implements CommandListener { 
  //构造公共类实例 
  private PubClass pubclass  = new PubClass(); 
  /** Constructor */ 
  public MainMIDLet() { 
    super('通讯录',List.IMPLICIT); 
    //显示列表 
    for(int i=0;ithis.append(pubclass.Get_MainList(i),pubclass.createImage('/images/tel.png')); 
    } 
    //构造按钮 
    pubclass.selectCommand = new Command('选择', Command.OK, 1); 
    pubclass.menuCommand = new Command('主目录', Command.EXIT, 2); 
   //添加监听 
    this.addCommand(pubclass.selectCommand); 
    this.addCommand(pubclass.menuCommand); 
    this.setCommandListener(this); 
  } 
  public void commandAction(Command c, Displayable d) { 
    if (c == pubclass.selectCommand) { 
      int selectitem = this.getSelectedIndex(); 
      //尽量不使用Switch,用If提高速度,虽然麻烦点,经验所得 
      if (selectitem == 0) { 
        pubclass.Return_PersonListMIDLet(); 
      } 
      if (selectitem == 1) { 
        pubclass.Return_SearchMIDlet(); 
      } 
      if (selectitem == 2) { 
        pubclass.Return_AddPersonMIDLet(); 
      } 
      if (selectitem == 3) { 
      } 

    } 
    if(c == pubclass.menuCommand){ 
      pubclass.Return_MenuMIDLet(); 
    } 
  } 
} 
//=========================end================================ 

//=========================AddPersonMIDLet添加联系人类================================ 
package messagemidlet; 
import javax.microedition.lcdui.*; 
import javax.microedition.rms.*; 
public class AddPersonMIDLet extends Form implements CommandListener { 
  //构造公共类实例 
  private PubClass pubclass = new PubClass(); 
  /** Constructor */ 
  public AddPersonMIDLet() { 
    super(''); 
    this.setTitle('添加联系人'); 
     for(int i=0;ithis.append(pubclass.person[i]); 
     } 
    //构造按钮 
    pubclass.exitCommand = new Command('返回', Command.OK, 1); 
    pubclass.okCommand = new Command('保存', Command.BACK, 2); 
    //添加监听 
    this.addCommand(pubclass.exitCommand); 
    this.addCommand(pubclass.okCommand); 
    this.setCommandListener(this); 
  } 
  //添加记录 
  private void AddRecord(){ 
    RecordStore rs =null; 
    rs = pubclass.Open(); 
      try { 
      //取得textfield每个直,以数组形式保存 
      String[] getstring = new String[pubclass.Length]; 
      for(int i=0;i//构造personclass实例 
      PersonClass personclass = new PersonClass(); 
      personclass.Write(getstring); 
      byte[] data = personclass.changeToByteArray(); 
      int recordId = personclass.GetRecordID(); 
      if (recordId != -1) { 
        rs.setRecord(recordId, data, 0, data.length); 
      } 
      else { 
        //添加记录 
        recordId = rs.addRecord(data, 0, data.length); 
    } 
    SetGet.SetDelId(0); 
    MainMIDLet mainmidlet = new MainMIDLet(); 
    pubclass.Alert('添加成功!返回中.......', mainmidlet); 
  } 
    catch (Exception e) { 
       pubclass.Alert('添加联系人失败'); 
    } 
  } 

  public void commandAction(Command c, Displayable d) { 
    if(c == pubclass.okCommand){ 
      //判断至少要填写姓名 
     if(pubclass.person[0].getString() == null || pubclass.person[0].getString() == '' ){ 
        pubclass.Alert('至少要填写姓名'); 
      }else{ 
        //添加记录 
        AddRecord(); 
      } 
    } 
    if(c == pubclass.exitCommand){ 
      pubclass.Return_MainMIDLet(); 
    } 
  } 
} 

//=========================end================================ 

//=========================PersonListMIDlet联系人列表类(显示联系人列表)================================ 
package messagemidlet; 

import javax.microedition.lcdui.*; 
import javax.microedition.rms.*; 
public class PersonListMIDlet extends List implements CommandListener { 
  //构造公共类实例 
  private PubClass pubclass = new PubClass(); 
  private PersonClass personclass = new PersonClass(); 
  public int[] recordIDs; 
  /** Constructor */ 
  public PersonListMIDlet() { 
    super('联系人列表',List.IMPLICIT); 
    PersonList(); 
    //构造按钮 
    pubclass.selectCommand = new Command('查看', Command.SCREEN, 2); 
    pubclass.exitCommand = new Command('编辑', Command.EXIT, 1); 
    //添加监听 
    this.addCommand(pubclass.exitCommand); 
    this.addCommand(pubclass.selectCommand); 
    this.setCommandListener(this); 
  } 
//用户列表 
  public void PersonList() { 
    RecordStore rs = null; 
    rs = pubclass.Open(); 
    try { 
      byte[] data; 
      //建立枚举,取出记录 
      RecordEnumeration re = rs.enumerateRecords(null, null, false); 
      //判断是否又记录 
      if (re.hasNextElement()) { 
        int records=re.numRecords();//取得记录数 
         recordIDs=new int[records];//recordID记录数组 
        for(int i=0;i//保存id 
            data = rs.getRecord(recordIDs[i]); 
            personclass.changeFromByteArray(data); 
            this.append(''+personclass.getPerson(0)+'',pubclass.createImage('/images/per.png'));//插入此record名称 
          } 
          SetGet.SetIsTrue(true); 
      } 
      else { 
        this.append('还未添加联系人?', null); 
        SetGet.SetIsTrue(false); 
      } 
    } 
    catch (Exception e) { 
    } 
  } 
  //全局变量ID 
  private void SetGetId() { 
    int itemid = this.getSelectedIndex(); 
    SetGet.SetId(recordIDs[itemid]); 
  } 
  //全局变量DelID 
  private void SetGetDelId() { 
    int itemid = this.getSelectedIndex(); 
    SetGet.SetDelId(recordIDs[itemid]); 
  } 
  private void SetGetModId(){ 
    int itemid = this.getSelectedIndex(); 
    SetGet.SetModId(recordIDs[itemid]); 
  } 
  //提示信息并返回 
  public void AlerNone(){ 
    MainMIDLet mainmidlet = new MainMIDLet(); 
    pubclass.Alert('无法操作',mainmidlet); 
  } 
  public void commandAction(Command c, Displayable d) { 
    if(c ==pubclass.exitCommand ){ 
      if (SetGet.GetIsTrue()){ 
        this.SetGetDelId(); 
        this.SetGetModId(); 
        pubclass.Return_OperateMIDLet(); 
      }else{ 
        AlerNone(); 
      } 
    } 
    if(c ==pubclass.selectCommand ){ 
      if (SetGet.GetIsTrue()){ 
        this.SetGetId(); 
        pubclass.Return_PersonDetailMIDlet(); 
      }else{ 
        AlerNone(); 
      } 
  } 
  } 
} 

//=========================end================================ 
//=========================SearchMIDlet查找类================================ 
package messagemidlet; 
import javax.microedition.midlet.*; 
import javax.microedition.lcdui.*; 
import javax.microedition.lcdui.Command; 
import javax.microedition.lcdui.Displayable; 
public class SearchMIDlet  extends TextBox implements CommandListener{ 
  //构造公共类实例 
  private PubClass pubclass = new PubClass(); 
  /** Constructor */ 
  public SearchMIDlet() { 
    super('查找联系人','',256,0); 
    //构造按钮 
    pubclass.menuCommand = new Command('查找', Command.SCREEN, 1); 
    pubclass.okCommand = new Command('主目录', Command.BACK, 1); 
   //添加监听 
    this.addCommand(pubclass.menuCommand); 
    this.addCommand(pubclass.okCommand); 
    this.setCommandListener(this); 
  } 
  public void commandAction(Command c, Displayable d) { 
    if(c ==pubclass.okCommand ){ 
      pubclass.Return_MenuMIDLet(); 
    } 
    if(c ==pubclass.menuCommand){ 
      //设置全局变量 
      SetGet.SetStr(this.getString()); 
      pubclass.Return_SearchOutMIDlet(); 
    } 
  } 
} 

//=========================end================================ 
//=========================SearchOutMIDlet查找结果类================================ 
package messagemidlet; 
import javax.microedition.lcdui.*; 
import javax.microedition.rms.*; 
import java.io.*; 
public class SearchOutMIDlet extends List implements CommandListener { 
  //构造公共类实例 
  private PubClass pubclass = new PubClass(); 
  private PersonClass personclass = new PersonClass(); 
  public int[] recordIDs; 
  /** Constructor */ 
  public SearchOutMIDlet() { 
    super('查找结果', List.IMPLICIT); 
    PersonList(); 
//构造按钮 
    pubclass.selectCommand = new Command('查看', Command.SCREEN, 2); 
    pubclass.exitCommand = new Command('编辑', Command.EXIT, 1); 
//添加监听 
    this.addCommand(pubclass.exitCommand); 
    this.addCommand(pubclass.selectCommand); 
    this.setCommandListener(this); 
  } 
//用户列表 
  public void PersonList() { 
    RecordStore rs = null; 
    rs = pubclass.Open(); 
    try { 
      byte[] data; 
      //匹配 
      RecordFilter rf = new nameFilter(); 
      //建立枚举,取出记录 
      RecordEnumeration re = rs.enumerateRecords(rf, null, false); 
      //判断是否又记录 
      if (re.hasNextElement()) { 
        int records=re.numRecords();//取得记录数 
         recordIDs=new int[records];//recordID记录数组 
        for(int i=0;i//保存id 
            data = rs.getRecord(recordIDs[i]); 
            personclass.changeFromByteArray(data); 
            this.append(''+personclass.getPerson(0)+'',pubclass.createImage('/images/per.png'));//插入此record名称 
          } 
          SetGet.SetIsTrue(true); 
      } 
      else { 
        this.append('对不起,没有查找到', null); 
        SetGet.SetIsTrue(false); 
      } 
    } 
    catch (Exception e) { 
    } 
  } 
  //全局变量ID 
  private void SetGetId() { 
    int itemid = this.getSelectedIndex(); 
    SetGet.SetId(recordIDs[itemid]); 
  } 
  //全局变量ModID 
  private void SetGetModId() { 
    int itemid = this.getSelectedIndex(); 
    SetGet.SetModId(recordIDs[itemid]); 
  } 
  //全局变量DelID 
  private void SetGetDelId() { 
    int itemid = this.getSelectedIndex(); 
    SetGet.SetDelId(recordIDs[itemid]); 
  } 
  //提示信息并返回 
  public void AlerNone(){ 
    MainMIDLet mainmidlet = new MainMIDLet(); 
    pubclass.Alert('无法操作',mainmidlet); 
  } 
  public void commandAction(Command c, Displayable d) { 
    if(c ==pubclass.exitCommand ){ 
      if (SetGet.GetIsTrue()){ 
        this.SetGetModId(); 
        this.SetGetDelId(); 
        pubclass.Return_OperateMIDLet(); 
      }else{ 
        AlerNone(); 
      } 
    } 
    if(c ==pubclass.selectCommand ){ 
      if (SetGet.GetIsTrue()){ 
        this.SetGetId(); 
        pubclass.Return_PersonDetailMIDlet(); 
      }else{ 
        AlerNone(); 
      } 
  } 
} 
} 
class nameFilter implements RecordFilter{ 
        public boolean matches(byte[] candidate){ 
                DataInputStream person = new DataInputStream(new ByteArrayInputStream(candidate)); 
                String personcname = ''; 
                try{ 
                 personcname = person.readUTF(); 
           } 
           catch(Exception e){ 
           } 
           PersonClass personclass = new PersonClass(); 
           if(personcname.equals(SetGet.GetStr())) return true; 
           else return false; 
        } 
} 

//=========================end================================ 

//=========================PersonDetailMIDlet指定联系人详细信息================================ 
package messagemidlet; 

import javax.microedition.lcdui.*; 
import javax.microedition.rms.*; 
public class PersonDetailMIDlet extends Form implements CommandListener { 
  //构造公共类实例 
  private PubClass pubclass = new PubClass(); 
  /** Constructor */ 
  public PersonDetailMIDlet() { 
    super(''); 
    this.ConstructorList(); 
    //构造按钮 
    pubclass.selectCommand = new Command('返回', Command.SCREEN, 2); 
    pubclass.exitCommand = new Command('主目录', Command.EXIT, 1); 
    //添加监听 
    this.addCommand(pubclass.exitCommand); 
    this.addCommand(pubclass.selectCommand); 
    this.setCommandListener(this); 
  } 
  //构造LIST,显示详细信息 
  private void ConstructorList() { 
    try { 
      this.GetPersonDetail(); 
    } 
    catch (RecordStoreException ex) { 
    } 
  } 
  //绑定对应ID数据,并显示 
  private void GetPersonDetail() throws RecordStoreException { 
    RecordStore rs = null; 
    //打开数据库 
    rs = pubclass.Open(); 
    //建立枚举,取得对应ID的详细信息 
    try { 
      byte[] data; 
      RecordEnumeration re = rs.enumerateRecords(null, null, false); 
      data = rs.getRecord(SetGet.GetId()); 
      //重新构造,并把byte转换为string类型 
      PersonClass personclass = new PersonClass(); 
      personclass.changeFromByteArray(data); 
      //重新设置用户ID 
      int RecordId = rs.getNextRecordID(); 
      //给对应的属性赋值 
      for (int i = 0; i < pubclass.persondetail.length; i++) { 
        this.append(pubclass.persondetail[i]); 
        pubclass.persondetail[i].setText(personclass.getPerson(i)); 
      } 
      //设置标题为用户名 
      this.setTitle(personclass.getPerson(0)); 
    } 
    catch (RecordStoreNotOpenException ex) { 
    } 
  } 
  public void commandAction(Command c, Displayable d) { 
    if(c == pubclass.selectCommand){ 
      pubclass.Return_PersonListMIDLet(); 
    } 
    if(c == pubclass.exitCommand){ 
      pubclass.Return_MenuMIDLet(); 
    } 
  } 
} 
//=========================end================================ 

//=========================OperateMIDlet操作联系人类(这里只有删除功能)================================ 
package messagemidlet; 
import javax.microedition.midlet.*; 
import javax.microedition.lcdui.*; 
import javax.microedition.rms.*; 

public class OperateMIDlet extends List implements CommandListener { 
  //构造公共类实例 
  private PubClass pubclass = new PubClass(); 
  /** Constructor */ 
  public OperateMIDlet() { 
    super('联系人', List.IMPLICIT); 
    for (int i = 0; i < pubclass.operatelist.length; i++) { 
      this.append(pubclass.Get_OperateList(i), pubclass.createImage('/images/edit.png')); 
    } 
    //构造按钮 
    pubclass.operCommand = new Command('选择', Command.SCREEN, 2); 
    pubclass.menuCommand = new Command('主目录', Command.EXIT, 1); 
    //添加监听 
    this.addCommand(pubclass.menuCommand); 
    this.addCommand(pubclass.operCommand); 
    this.setCommandListener(this); 
  } 
//删除指定记录 
  public void Del(int delid) { 
    PersonClass personclass = new PersonClass(); 
    RecordStore rs = null; 
    rs = pubclass.Open(); 
    try { 
      //判断是否又记录 
      if(rs.getNumRecords()<1){ 
        pubclass.Alert('还未添加记录!返回中.......'); 
      }else{ 
        //bug 
        rs.deleteRecord(delid); 
        AlertInfo('删除成功!返回中.......'); 
      } 
    } 
    catch (Exception e) { 
      AlertInfo('删除失败!返回中.......'); 
    } 
  } 
//全部删除记录 
  public void Delall() { 
    PersonClass personclass = new PersonClass(); 
    RecordStore rs = null; 
    rs = pubclass.Open(); 
    //判断是否又记录 
    try { 
      if (rs.getNumRecords() < 1) { 
        pubclass.Alert('还未添加记录!返回中.......'); 
      } 
      else { 
        //构造RecordEnumeration实例,取出记录 
        RecordEnumeration re = rs.enumerateRecords(null, null, false); 
        //根据ID,循环删除 
        while (re.hasNextElement()) { 
          int recoidId = re.nextRecordId(); 
          rs.deleteRecord(recoidId); 
        } 
        AlertInfo('删除成功!返回中.......'); 
      } 
    } 
    catch (Exception e) { 
       AlertInfo('删除失败!返回中.......'); 
    } 
  } 
  public void AlertInfo(String info){ 
    PersonListMIDlet Personlistmidlet = new PersonListMIDlet(); 
    pubclass.Alert(in, fo,Personlistmidlet); 
  } 
  public void commandAction(Command c, Displayable d) { 
    if(c ==pubclass.menuCommand  ){ 
      pubclass.Return_MenuMIDLet(); 
    } 
    if(c ==pubclass.operCommand ){ 
      int selectitem = this.getSelectedIndex(); 
     //尽量不使用Switch,用If提高速度,虽然麻烦点,经验所得 
     if (selectitem == 0) { 
       pubclass.Return_ModifyPersonMIDlet(); 
     } 
     if (selectitem == 1) { 
       Del(SetGet.GetDelId()); 
       SetGet.SetDelId(0); 
     } 
     if (selectitem == 2) { 
       Delall(); 
       SetGet.SetDelId(0); 
     } 
    } 
  } 
} 
//=========================end================================ 
//=========================ModifyPersonMIDlet修改指定联系人详细信息================================ 
package messagemidlet; 
import javax.microedition.lcdui.*; 
import javax.microedition.rms.*; 

public class ModifyPersonMIDlet extends Form implements CommandListener  { 
  //构造公共类实例 
  private PubClass pubclass = new PubClass(); 
  /** Constructor */ 
  public ModifyPersonMIDlet() { 
    super(''); 
    try { 
      this.GetPersonDetail(); 
    } 
    catch (RecordStoreException ex) { 
    } 
     //构造按钮 
    pubclass.exitCommand = new Command('主目录', Command.OK, 1); 
    pubclass.okCommand = new Command('修改', Command.BACK, 2); 
   //添加监听 
    this.addCommand(pubclass.exitCommand); 
    this.addCommand(pubclass.okCommand); 
    this.setCommandListener(this); 
  } 
  //绑定对应ID数据,并显示 
  private void GetPersonDetail() throws RecordStoreException { 
    RecordStore rs = null; 
    //打开数据库 
    rs = pubclass.Open(); 
    //建立枚举,取得对应ID的详细信息 
    try { 
      byte[] data; 
      RecordEnumeration re = rs.enumerateRecords(null, null, false); 
      data = rs.getRecord(SetGet.GetModId()); 
      //重新构造,并把byte转换为string类型 
      PersonClass personclass = new PersonClass(); 
      personclass.changeFromByteArray(data); 
      //重新设置用户ID 
      int RecordId = rs.getNextRecordID(); 
      //给对应的属性赋值 
      for (int i = 0; i < pubclass.person.length; i++) { 
        this.append(pubclass.person[i]); 
        pubclass.person[i].setString(personclass.getPerson(i)); 
      } 
      //设置标题为用户名 
      this.setTitle('修改'+personclass.getPerson(0)); 
    } 
    catch (RecordStoreNotOpenException ex) { 
    } 
    rs.closeRecordStore(); 
  } 
  //修改联系人 
  public void UpdataPerson() { 
    RecordStore rs = null; 
    rs = pubclass.Open(); 
    try { 
      //取得textfield每个直,以数组形式保存 
      String[] getstring = new String[pubclass.Length]; 
      for (int i = 0; i < pubclass.Length; i++) { 
        getstring[i] = pubclass.person[i].getString(); 
      } 
      //构造personclass实例 
      PersonClass personclass = new PersonClass(); 
      personclass.Write(getstring); 
      byte[] data = personclass.changeToByteArray(); 
      int recordId = personclass.GetRecordID(); 
      if (recordId != -1) { 
        rs.setRecord(recordId, data, 0, data.length); 
      } 
      else { 
        //修改记录 
        rs.setRecord(SetGet.GetModId(),data,0,data.length);//rs.setRecord(SetGet.GetModId(), data,0, data.length); 
        personclass.SetRecordID(recordId); 
      } 
      SetGet.SetModId(0); 
      PersonListMIDlet Personlistmidlet = new PersonListMIDlet(); 
      pubclass.Alert('修改成功!返回中.......',Personlistmidlet); 
    } 
    catch (Exception e) { 
      PersonListMIDlet Personlistmidlet = new PersonListMIDlet(); 
      pubclass.Alert('修改失败',Personlistmidlet); 
    } 
  } 
  public void commandAction(Command c, Displayable d) { 
    if(c == pubclass.exitCommand){ 
      pubclass.Return_MenuMIDLet(); 
    } 
    if(c == pubclass.okCommand){ 
      //判断至少要填写姓名 
      if (pubclass.person[0].getString() == null || pubclass.person[0].getString() == '') { 
        pubclass.Alert('至少要填写姓名'); 
      } 
      else { 
        this.UpdataPerson(); 
      } 
    } 
  } 
} 
//=========================end================================ 

 

 

抱歉!评论已关闭.