J2ME学习笔记:TextBox与List综合应用,getSelectedIndex()和display.setCurrent(tb)用法

此前已经讲解了TextBox与List的应用,那么现在将有一个综合它们两个的程序,功能是选择了相应的list选项就能把当前的屏幕切换成对应的TextBox基本文本屏幕,其实用到的切换结束就是这个语句:display.setCurrent(想要实现的屏幕对象);然而怎样然按钮监听器知道你选择的是哪个候选项呢,可以用getSelectedIndex()来获得选择的选项序号:switch (((List)d).getSelectedIndex()),以下便给出源代码import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.microedition.lcdui.*;


public class ListControl extends MIDlet implements CommandListener {

private final static Command exitCommand = new Command("Exit",Command.EXIT,1);
private final static Command backCommand = new Command("back",Command.BACK,1);
private Display display;
private List mainList;
private TextBox tb;

public ListControl()
{
   display = Display.getDisplay(this);
   tb = new TextBox("Terry","9prior",15,0);
   tb.addCommand(exitCommand);
   tb.addCommand(backCommand);
   tb.setCommandListener(this);  
  
}

protected void startApp() throws MIDletStateChangeException
{
   Image[] imageArray = null;
   try{
   Image icon = Image.createImage("/1.png");
   imageArray = new Image[]{
    icon,
    icon,
    icon   
   };
   }catch (java.io.IOException err)
   {
    System.out.println("loan ...");
   }
  
   String[] stringArray = {
     "choice 1",
     "choice 2",
     "choice 3"
   };
  
   mainList = new List("katrina",Choice.IMPLICIT,stringArray,imageArray);
   mainList.addCommand(exitCommand);
   mainList.setCommandListener(this);
   display.setCurrent(mainList);
}

protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
  

}

protected void pauseApp() {
  
}

public void commandAction(Command c, Displayable d)
{
   if (d.equals(mainList)){ //用equals来判断当前display是什么
   
    if (c == List.SELECT_COMMAND){
     if (d.equals(mainList)){
      switch (((List)d).getSelectedIndex()){/*用getSelectedIndex()来获得选择的选项序号*/
     
      case 0:
       tb.setString("Text A");
       display.setCurrent(tb);
       break;
      case 1:
       tb.setString("Text B");
       display.setCurrent(tb);
       break;
      case 2:
       tb.setString("Text C");
       display.setCurrent(tb);
       break;
     
      }
     }
    
    }
   }else
    if(c == backCommand){
     display.setCurrent(mainList);
    }
  
  
}

 

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值