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

📄 itemdisplayscreen.java

📁 基于手机的通信录、文件、图片读写开发,j2me开发架构
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    }    public void commandAction(Command command, final Item formItem) {        final int field = ((Integer) fieldTable.get(formItem)).intValue();        if (command == editBooleanCommand) {            boolean newValue = !item.getBoolean(field, 0);            item.setBoolean(field, 0, PIMItem.ATTR_NONE, newValue);            ((StringItem) formItem).setText(newValue ? "yes" : "no");        } else if (command == editArrayCommand) {            String label = item.getPIMList().getFieldLabel(field);            final String[] a = item.getStringArray(field, 0);            final TextField[] textFields = new TextField[a.length];            for (int i = 0; i < a.length; i++) {                String elementLabel =                    item.getPIMList().getArrayElementLabel(field, i);                textFields[i] = new TextField(elementLabel, a[i], 128, TextField.ANY);            }            Form form = new Form(label, textFields);            final Command okCommand = new Command("OK", Command.OK, 1);            final Command cancelCommand = new Command("Cancel", Command.CANCEL, 1);            form.addCommand(okCommand);            form.addCommand(cancelCommand);            form.setCommandListener(new CommandListener() {                public void commandAction(Command command, Displayable d) {                    if (command == okCommand) {                        for (int i = 0; i < textFields.length; i++) {                            a[i] = textFields[i].getString();                        }                        item.setStringArray(field, 0, item.getAttributes(field, 0), a);                        ((StringItem) formItem).setText(joinStringArray(a));                    }                    Display.getDisplay(midlet).setCurrent(ItemDisplayScreen.this);                }            });            Display.getDisplay(midlet).setCurrent(form);        } else if (command == removeField) {            item.removeValue(field, 0);            try {                populateForm();            } catch (PIMException e) { }            /*            for (int i = size() - 1; i >=0; i--) {                if (get(i) == formItem) {                    delete(i);                    break;                }            }*/        }    }    private void commit() {        try {            getUserData();            item.commit();            populateForm();        } catch (Exception e) {            midlet.reportException(e, this);        }    }    private void getUserData() throws NumberFormatException {        int itemCount = size();        for (int i = 0; i < itemCount; i++) {            Item formItem = get(i);            int field = ((Integer) fieldTable.get(formItem)).intValue();            if (item.countValues(field) < 1) {                // No data in field. This can happen if, for example, a                // value is adding to PUBLIC_KEY, causing values of                // PUBLIC_KEY_STRING to be erased.                continue;            }            int dataType = item.getPIMList().getFieldDataType(field);            switch (dataType) {                case PIMItem.STRING: {                    String s = ((TextField) formItem).getString();                    try {                        item.setString(field, 0, PIMItem.ATTR_NONE, s);                    } catch (IllegalArgumentException e) {                        // this was a read-only field (UID)                    }                    break;                }                case PIMItem.DATE: {                    long time = ((DateField) formItem).getDate().getTime();                    try {                        item.setDate(field, 0, PIMItem.ATTR_NONE, time);                    } catch (IllegalArgumentException e) {                        // this was a read-only field (REVISION)                    }                    break;                }                case PIMItem.INT: {                    String s = ((TextField) formItem).getString();                    int j = Integer.parseInt(s);                    item.setInt(field, 0, PIMItem.ATTR_NONE, j);                    break;                }            }        }    }    private void addField() {        int[] allFields = item.getPIMList().getSupportedFields();        final Vector unusedFields = new Vector();        for (int i = 0; i < allFields.length; i++) {            if (item.countValues(allFields[i]) == 0                && !isClassField(allFields[i])) {                unusedFields.addElement(new Integer(allFields[i]));            }        }        final List fieldList = new List("Select a field to add", List.IMPLICIT);        for (Enumeration e = unusedFields.elements(); e.hasMoreElements();) {            int field = ((Integer) e.nextElement()).intValue();            fieldList.append(item.getPIMList().getFieldLabel(field), null);        }        fieldList.addCommand(new Command("Cancel", Command.CANCEL, 1));        fieldList.setSelectCommand(new Command("Add", Command.OK, 1));        fieldList.setCommandListener(new CommandListener() {            public void commandAction(Command c, Displayable d) {                if (c.getCommandType() == Command.OK) {                    try {                        int index = fieldList.getSelectedIndex();                        int field = ((Integer) unusedFields.elementAt(index))                            .intValue();                        addField(field);                    } catch (IllegalArgumentException iae) {                        midlet.reportException(iae, ItemDisplayScreen.this);                    }                    try {                        getUserData();                        populateForm();                    } catch (Exception e) {                        midlet.reportException(e, ItemDisplayScreen.this);                    }                }                Display.getDisplay(midlet).setCurrent(ItemDisplayScreen.this);            }        });        Display.getDisplay(midlet).setCurrent(fieldList);    }    private void addField(int field) {        switch (item.getPIMList().getFieldDataType(field)) {            case PIMItem.STRING:                item.addString(field, PIMItem.ATTR_NONE, "");                break;            case PIMItem.STRING_ARRAY: {                int[] supportedElements =                    item.getPIMList().getSupportedArrayElements(field);                int arraySize = 0;                for (int i = 0; i < supportedElements.length; i++) {                    arraySize = Math.max(arraySize, supportedElements[i] + 1);                }                String[] a = new String[arraySize];                for (int i = 0; i < a.length; i++) {                    a[i] = "";                }                item.addStringArray(field, PIMItem.ATTR_NONE, a);                break;            }            case PIMItem.BINARY:                item.addBinary(field, PIMItem.ATTR_NONE, new byte[16], 0, 16);                break;            case PIMItem.BOOLEAN:                item.addBoolean(field, PIMItem.ATTR_NONE, false);                break;            case PIMItem.DATE:                item.addDate(field, PIMItem.ATTR_NONE, new Date().getTime());                break;            case PIMItem.INT:                item.addInt(field, PIMItem.ATTR_NONE, 0);        }    }    private void showItem(String format) {        try {            getUserData();            populateForm();            ByteArrayOutputStream baos = new ByteArrayOutputStream();            PIM.getInstance().toSerialFormat(item, baos, "UTF-8", format);            String s = new String(baos.toByteArray(), "UTF-8");            Alert a = new Alert(format, s, null, AlertType.INFO);            a.setTimeout(Alert.FOREVER);            Display.getDisplay(midlet).setCurrent(a, this);        } catch (Exception e) {            midlet.reportException(e, this);        }    }    private String joinStringArray(String[] a) {        StringBuffer sb = new StringBuffer();        for (int i = 0; i < a.length; i++) {            if (a[i] != null && a[i].length() > 0) {                if (sb.length() > 0) {                    sb.append(", ");                }                sb.append(a[i]);            }        }        return sb.toString();    }}

⌨️ 快捷键说明

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