javaME中choicegroup没法选择...求各位大虾帮助
2011-03-15 16:30
381 查看
import javax.microedition.lcdui.ChoiceGroup;
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.Item;
import javax.microedition.lcdui.ItemStateListener;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.microedition.rms.RecordComparator;
import javax.microedition.rms.RecordEnumeration;
import javax.microedition.rms.RecordFilter;
import javax.microedition.rms.RecordStore;
//可以删除,增加电话簿,并可以筛选,并按大小排序(没法选择其他项删除,只能第一个)
public class MIDlet8 extends MIDlet implements CommandListener,ItemStateListener,RecordFilter,RecordComparator{
private Command cmddel=new Command ("删除",Command.CANCEL,1);
private Command cmdadd=new Command ("添加",Command.SCREEN,1);
private Form frm=new Form("电话簿界面");
private ChoiceGroup cg=new ChoiceGroup("电话簿",ChoiceGroup.EXCLUSIVE);
private TextField tfphone=new TextField("输入电话","",20,TextField.PHONENUMBER);
private TextField tfsearch=new TextField("查找电话","",20,TextField.PHONENUMBER);
private Display dis;
private RecordStore rs=null;
private String searchstring="";
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO 自动生成方法存根
}
protected void pauseApp() {
// TODO 自动生成方法存根
}
protected void startApp() throws MIDletStateChangeException {
// TODO 自动生成方法存根
dis=Display.getDisplay(this);
dis.setCurrent(frm);
frm.addCommand(cmdadd);
frm.addCommand(cmddel);
frm.append(cg);
frm.append(tfphone);
frm.append(tfsearch);
frm.setCommandListener(this);
frm.setItemStateListener(this);
this.init();
}
public void init(){
cg.deleteAll();
try{
rs=RecordStore.openRecordStore("Rs8", true);
RecordEnumeration re=rs.enumerateRecords(this,this, false);
while(re.hasNextElement()){
byte[] data=re.nextRecord();
String str=new String (data);
cg.append(str, null);
}
}catch(Exception ex){
ex.printStackTrace();
}
finally {
try{
rs.closeRecordStore();
}catch(Exception ex){
ex.printStackTrace();
}
}
}
public void commandAction(Command cmd, Displayable d1) {
if(cmd==cmddel){
int selectIndex =cg.getSelectedIndex();
String str=cg.getString(selectIndex);
try{
rs=RecordStore.openRecordStore("Rs8", true);
int nextRecord= rs.getNextRecordID();
for(int i =1;i<nextRecord;i++){
try{
byte[] data=rs.getRecord(i);
String phone=new String(data);
if(phone .equals(str))
rs.deleteRecord(i);
}catch(Exception ex){
}
}
}catch(Exception ex){
}
finally{
try{
rs.closeRecordStore();
this.init();
}catch(Exception ex){
}
}
}
else if(cmd==cmdadd){
try{
rs=RecordStore.openRecordStore("Rs8", true);
String phone=tfphone.getString();
byte[] data=phone.getBytes();
rs.addRecord(data, 0, data.length);
}catch(Exception ex){
}
finally {
try{
rs.closeRecordStore();
tfphone.setString("");
this.init();
}catch(Exception ex){
}
}
}
}
public void itemStateChanged(Item arg0) {
// TODO 自动生成方法存根
searchstring=tfsearch.getString();
this.init();
}
public boolean matches(byte[] arg0) {
// TODO 自动生成方法存根
String str=new String(arg0);
if(str.startsWith(searchstring))
return true;
return false;
}
public int compare(byte[] arg0, byte[] arg1) {
// TODO 自动生成方法存根
String str1=new String (arg0);
String str2=new String (arg1);
int num1=Integer.parseInt(str1);
int num2=Integer.parseInt(str2);
if(num1>num2)
return RecordComparator.FOLLOWS;
else if(num1<num2)
return RecordComparator.PRECEDES;
return RecordComparator.EQUIVALENT;
}
}
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.Item;
import javax.microedition.lcdui.ItemStateListener;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.microedition.rms.RecordComparator;
import javax.microedition.rms.RecordEnumeration;
import javax.microedition.rms.RecordFilter;
import javax.microedition.rms.RecordStore;
//可以删除,增加电话簿,并可以筛选,并按大小排序(没法选择其他项删除,只能第一个)
public class MIDlet8 extends MIDlet implements CommandListener,ItemStateListener,RecordFilter,RecordComparator{
private Command cmddel=new Command ("删除",Command.CANCEL,1);
private Command cmdadd=new Command ("添加",Command.SCREEN,1);
private Form frm=new Form("电话簿界面");
private ChoiceGroup cg=new ChoiceGroup("电话簿",ChoiceGroup.EXCLUSIVE);
private TextField tfphone=new TextField("输入电话","",20,TextField.PHONENUMBER);
private TextField tfsearch=new TextField("查找电话","",20,TextField.PHONENUMBER);
private Display dis;
private RecordStore rs=null;
private String searchstring="";
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO 自动生成方法存根
}
protected void pauseApp() {
// TODO 自动生成方法存根
}
protected void startApp() throws MIDletStateChangeException {
// TODO 自动生成方法存根
dis=Display.getDisplay(this);
dis.setCurrent(frm);
frm.addCommand(cmdadd);
frm.addCommand(cmddel);
frm.append(cg);
frm.append(tfphone);
frm.append(tfsearch);
frm.setCommandListener(this);
frm.setItemStateListener(this);
this.init();
}
public void init(){
cg.deleteAll();
try{
rs=RecordStore.openRecordStore("Rs8", true);
RecordEnumeration re=rs.enumerateRecords(this,this, false);
while(re.hasNextElement()){
byte[] data=re.nextRecord();
String str=new String (data);
cg.append(str, null);
}
}catch(Exception ex){
ex.printStackTrace();
}
finally {
try{
rs.closeRecordStore();
}catch(Exception ex){
ex.printStackTrace();
}
}
}
public void commandAction(Command cmd, Displayable d1) {
if(cmd==cmddel){
int selectIndex =cg.getSelectedIndex();
String str=cg.getString(selectIndex);
try{
rs=RecordStore.openRecordStore("Rs8", true);
int nextRecord= rs.getNextRecordID();
for(int i =1;i<nextRecord;i++){
try{
byte[] data=rs.getRecord(i);
String phone=new String(data);
if(phone .equals(str))
rs.deleteRecord(i);
}catch(Exception ex){
}
}
}catch(Exception ex){
}
finally{
try{
rs.closeRecordStore();
this.init();
}catch(Exception ex){
}
}
}
else if(cmd==cmdadd){
try{
rs=RecordStore.openRecordStore("Rs8", true);
String phone=tfphone.getString();
byte[] data=phone.getBytes();
rs.addRecord(data, 0, data.length);
}catch(Exception ex){
}
finally {
try{
rs.closeRecordStore();
tfphone.setString("");
this.init();
}catch(Exception ex){
}
}
}
}
public void itemStateChanged(Item arg0) {
// TODO 自动生成方法存根
searchstring=tfsearch.getString();
this.init();
}
public boolean matches(byte[] arg0) {
// TODO 自动生成方法存根
String str=new String(arg0);
if(str.startsWith(searchstring))
return true;
return false;
}
public int compare(byte[] arg0, byte[] arg1) {
// TODO 自动生成方法存根
String str1=new String (arg0);
String str2=new String (arg1);
int num1=Integer.parseInt(str1);
int num2=Integer.parseInt(str2);
if(num1>num2)
return RecordComparator.FOLLOWS;
else if(num1<num2)
return RecordComparator.PRECEDES;
return RecordComparator.EQUIVALENT;
}
}
相关文章推荐
- 我需要各位大虾的帮助
- 求助~~~~~~~~~ 有人遇到过这种问题吗? 一个radiogroup里有两个radiobutton,选择了其中一个后重置将两个radiobutton setChecked(false), 导致直接
- 我该怎么选择,诚心请教各位前辈!
- 弱弱的问下各位大虾 能帮小弟改改简历么
- 请帮助程序中加入弹出列表,实现选择自动填入
- 如何选择创作类型的原创、翻译、转载『博客帮助』
- extjs4.1 动态加载 checkboxgroup 后checked 为true老是失效的问题+combobo自动选择特定记录
- ListView的操作模式的选择的更详细的解释CHOICE_MODE_MULTIPLE与CHOICE_MODE_MULTIPLE_MODAL
- DLUT热身赛最难题目——(请各位大虾提点)
- 各位大侠门,遇到这种抉择,你会怎么选择!
- 救火!各位大虾,怎样用JAVA程序读取excle文件或excle数据库,并插入到oracle数据库中,万分感谢
- 本人在学习myBatis时遇到了一个错误,求各位大佬帮助!
- 【PA2011】【BZOJ3069】Hard Choice 艰难的选择
- 请教各位大虾一个问题:联接错误怎么改啊?
- BZOJ3069 [Pa2011]Hard Choice 艰难的选择
- [VB.NET]关于进销存“移动加权平均”的问题,请教各位大虾,
- ORA-22992:没法使用从远程表选择的LOB定位器
- 获取ChoiceGroup多选状态下的值
- 有关TrueDBGrid的问题向各位大虾请教