⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 itemdisplayscreen.java

📁 基于手机的通信录、文件、图片读写开发,j2me开发架构
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* * @(#)ItemDisplayScreen.java	1.9 04/06/14 * * Copyright (c) 2000-2004 Sun Microsystems, Inc. All rights reserved. * PROPRIETARY/CONFIDENTIAL * Use is subject to license terms */package PDAPDemo.src.example.pim;import java.io.ByteArrayOutputStream;import java.util.Date;import java.util.Enumeration;import java.util.Hashtable;import java.util.Vector;import javax.microedition.lcdui.Alert;import javax.microedition.lcdui.AlertType;import javax.microedition.lcdui.Command;import javax.microedition.lcdui.CommandListener;import javax.microedition.lcdui.DateField;import javax.microedition.lcdui.Display;import javax.microedition.lcdui.Displayable;import javax.microedition.lcdui.Form;import javax.microedition.lcdui.Item;import javax.microedition.lcdui.ItemCommandListener;import javax.microedition.lcdui.List;import javax.microedition.lcdui.StringItem;import javax.microedition.lcdui.TextField;import javax.microedition.pim.Contact;import javax.microedition.pim.Event;import javax.microedition.pim.PIM;import javax.microedition.pim.PIMException;import javax.microedition.pim.PIMItem;import javax.microedition.pim.ToDo;/** * Demonstrate the use of JSR 75 PIM APIs */public class ItemDisplayScreen extends Form implements CommandListener, ItemCommandListener {    private final Command editArrayCommand = new Command("Edit", Command.OK, 1);    private final Command editBooleanCommand = new Command("Edit", Command.OK, 1);    private final Command commitCommand = new Command("Commit", Command.OK, 2);    private final Command backCommand = new Command("Back", Command.BACK, 1);    private final Command showVCard = new Command("Show vCard", Command.SCREEN, 5);    private final Command showVCalendar = new Command("Show vCalendar", Command.SCREEN, 5);    private final Command addField = new Command("Add Field", Command.SCREEN, 2);    private final Command removeField = new Command("Remove Field", Command.SCREEN, 3);    private final PIMDemo midlet;    private final ItemSelectionScreen caller;    private final PIMItem item;    private final Hashtable fieldTable = new Hashtable(); // maps field indices to items    public ItemDisplayScreen(PIMDemo midlet,        ItemSelectionScreen caller, PIMItem item) throws PIMException {        super("PIM Item");        this.midlet = midlet;        this.caller = caller;        this.item = item;        populateForm();        addCommand(backCommand);        addCommand(commitCommand);        setCommandListener(this);    }    private boolean isClassField(int field) {        return item instanceof Contact && field == Contact.CLASS            || item instanceof Event && field == Event.CLASS            || item instanceof ToDo && field == ToDo.CLASS;    }    private void populateForm() throws PIMException {        deleteAll();        fieldTable.clear();        int[] fields = item.getPIMList().getSupportedFields();        boolean allFieldsUsed = true;        for (int i = 0; i < fields.length; i++) {            int field = fields[i];            // exclude CLASS field            if (isClassField(field)) {                continue;            }            if (item.countValues(field) == 0) {                allFieldsUsed = false;                continue;            }            int dataType = item.getPIMList().getFieldDataType(field);            String label = item.getPIMList().getFieldLabel(field);            Item formItem = null;            switch (dataType) {                case PIMItem.STRING: {                    String sValue = item.getString(field, 0);                    if (sValue == null) {                        sValue = "";                    }                    int style = TextField.ANY;                    // cater for specific field styles                    if (item instanceof Contact) {                        switch (field) {                            case Contact.EMAIL:                                style = TextField.EMAILADDR;                                break;                            case Contact.TEL:                                style = TextField.PHONENUMBER;                                break;                            case Contact.URL:                                style = TextField.URL;                                break;                        }                    }                    try {                        formItem = new TextField(label, sValue, 128, style);                    } catch (IllegalArgumentException e) {                        formItem = new TextField(label, sValue, 128, TextField.ANY);                    }                    break;                }                case PIMItem.BOOLEAN: {                    formItem = new StringItem(label,                        item.getBoolean(field, 0) ? "yes" : "no");                    formItem.setDefaultCommand(editBooleanCommand);                    break;                }                case PIMItem.STRING_ARRAY: {                    String[] a = item.getStringArray(field, 0);                    if (a != null) {                        formItem = new StringItem(label, joinStringArray(a));                        formItem.setDefaultCommand(editArrayCommand);                    }                    break;                }                case PIMItem.DATE: {                    long time = item.getDate(field, 0);                    int style = DateField.DATE_TIME;                    // some fields are date only, without a time.                    // correct for these fields:                    if (item instanceof Contact) {                        switch (field) {                            case Contact.BIRTHDAY:                                style = DateField.DATE;                                break;                        }                    }                    formItem = new DateField(label, style);                    ((DateField) formItem).setDate(new Date(time));                    break;                }                case PIMItem.INT: {                    formItem = new TextField(label,                        String.valueOf(item.getInt(field, 0)),                        64, TextField.DECIMAL);                    break;                }                case PIMItem.BINARY: {                    byte[] data = item.getBinary(field, 0);                    if (data != null) {                        formItem = new StringItem(label, data.length + " bytes");                    }                    break;                }            }            if (formItem != null) {                append(formItem);                fieldTable.put(formItem, new Integer(field));                formItem.addCommand(removeField);                formItem.setItemCommandListener(this);            }        }        if (item instanceof Contact) {            addCommand(showVCard);        } else {            addCommand(showVCalendar);        }        if (!allFieldsUsed) {            addCommand(addField);        } else {            removeCommand(addField);        }    }    public void commandAction(Command command, Displayable displayable) {        if (command == backCommand) {            try {                getUserData();            } catch (Exception e) {                // ignore; store what can be stored of the data            }            try {                caller.populateList();            } catch (Exception e) {                // ignore again; show what can be shown of the list            }            Display.getDisplay(midlet).setCurrent(caller);        } else if (command == commitCommand) {            commit();        } else if (command == showVCard) {            showItem("VCARD/2.1");        } else if (command == showVCalendar) {            showItem("VCALENDAR/1.0");        } else if (command == addField) {            addField();        }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -