j2me--List的用法小实例

可以通过List类实现列表窗口。List包含在
javax.microedition.lcdui 包中,父类为Screen
------------------------------------------------------
                    列表窗口的类型
列表窗口包括一些选项,这些选项的类型可以分为隐式类型、单选类型、多选类型.
List类的构造函数有两个:
构造函数一:
语法:
public List(String title,int listType)
       参数: title是空列表的标题。
 listType是列表选项的类型或称列表的类型。
有三种类型:
 IMPLICIT(互斥的,通过隐式按钮实现)

 EXCLUSIVE(单选)和

 MULTIPLE(多选)。
------------------------------------------------------------------
               列表窗口的类型
构造函数二:
语法:
public List(String title, int listType,
    String[] stringElements,
     Image[] imageElements)
StringElements是字符串数组,可以指定具体的列表选项。
imageElements可以指定具体的列表选项以及列表选项的图标。
--------------------------------------------------------------------
                     单选按钮EXCLUSIVE
常量List.EXCLUSIVE,表示单选按钮。
 public ListImplicitTest () {
   command1 = new Command("确定",Command.OK,1);
   command2 = new Command("退出",Command.EXIT,1);
   command3 = new Command("返回",Command.BACK,1);
      list = new List("hello", List.EXCLUSIVE,ima,null);
  }
---------------------------------------------------------------------
                  MULTIPLE
public ListImplicitTest () {
  // TODO Auto-generated constructor stub
  command1 = new Command("确定",Command.OK,1);
  command2 = new Command("退出",Command.EXIT,1);
  command3 = new Command("返回",Command.BACK,1);
  list = new List("hello", List.EXCLUSIVE,ima,null);
 }
---------------------------------------------------------------------
                         获得被选中的内容
隐式类型的列表窗口
在隐式类型的列表窗口中选项的选择是隐式进行的。用户可以在命令按钮事件的处
理函数中可以获得被选中的选项。在List类中提供了一个静态成员命令常量
SELECT_COMMAND,该命令按钮是作为默认的隐式命令按钮,当用户按下选择键
后会触发该命令按钮的动作。
public static final Command SELECT_COMMAND
SELECT_COMMAND命令按钮的标签为空;优先级为0;类型为SCREEN或
ITEM。
------------------------------------------------------------------------------
             多选类型的列列表窗口

获得多选类型列表的值可以使用如下步骤
获得被选中选项的索引。
int index = this.lstImplicit.getSelectedIndex();
获得被选中选项的内容
Sstring str = this.lstImplicit.getString(index);
显示在标题中
this.lstImplicit.setTitle(“Item:’””+str+”’is selected”);
-----------------------------------------------------------------------------------

package com.feifei.list;

import java.io.IOException;

import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.List;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

public class TestList extends MIDlet implements CommandListener{
 
    Display  dis;
    List list;
    Image img;
 Image[] imags;
 Command add,del;
 public TestList() {
 dis=Display.getDisplay(this);
 try {
  img=Image.createImage("/img/5.png");
  imags=new Image[]{img,img,img};
 } catch (IOException e) {
  
  e.printStackTrace();
 }
 String[] str= new String[]{"上海","武汉","北京"};
 //隐式
 //list=new List("添加",List.IMPLICIT,str,imags);
 
 //多选
  list=new List("添加",List.MULTIPLE,str,imags);
 
  add=new Command("增加",Command.OK,1);
  del=new Command("删除",Command.BACK,1);
 
  list.setCommandListener(this);
 
 }

 protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
  
 }

 protected void pauseApp() {
  

 }

 protected void startApp() throws MIDletStateChangeException {
  
  list.addCommand(add);
  list.addCommand(del);
  dis.setCurrent(list);

 }
 
    //事件
 public void commandAction(Command c, Displayable d) {
  
  if(c==add){
   //隐式或单选的 List添加函数
  // addToList();
   //  多选List:增加的第一种方法 
  //  addMutilList1();
//    多选List:增加的第二种方法  
   addMutilList2();
   
  }else if(c==del){
        // 隐式或单选的 List删除函数
  // delToList();
  //全部删除
  // 多选List :删除
 //  this.delAllList();
   delMultiList();
  }
 }
 
 //单选
 public void addToList(){
  
  int index=list.getSelectedIndex();
  String str=list.getString(index);
  System.out.println(str);
  list.append(str, img);
  
 }
 
 
  //单选删除
 public void delToList(){
  int index=list.getSelectedIndex();
  list.delete(index);
 }
 
  //删除全部
 public void delAllList(){
  list.deleteAll();
 }
 
   //多选List:增加的第一种方法 
 public void addMutilList1(){
  for(int i=0;i<list.size();i++){
   //该项是否被选种
   if(list.isSelected(i)){
     String str=list.getString(i);
     list.append(str, img);
   }
  }
 }
 
  //多选 List :添加的二种方法
 public void addMutilList2(){
  boolean[] flags=new boolean[list.size()];
  list.getSelectedFlags(flags);//得到List 当中的所有选种的索引
  
  for(int i=0;i<list.size();i++){
   if(flags[i]){
    String str=list.getString(i);
    list.append(str, img);
   }
  }
 }

 //多选List :删除
 
 public void delMultiList(){
  for(int i=list.size()-1;i>=0;i--){
   if(list.isSelected(i)){
    list.delete(i);
    
   }
  }
 }

}
 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值