添加到编辑框弹出窗口 [英] Adding Editfield to Popup screen

查看:355
本文介绍了添加到编辑框弹出窗口的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建自己的自定义弹出窗口,以现在我想添加一个EditField中,似乎一切都很好,但问题是,我不能写在编辑栏任何

 类sveetIt扩展PopupScreen实现FieldChangeListener,DialogClosedListener {    哈希表pitemData;
    ButtonField字段sveetNowlabelField;
    ButtonField字段sveetLaterlabelField;
    WatingScreen watingScreen;
    长scheduledTime;
    对话updateDialog;    公共sveetIt(){
        超级(新MyCustimGridFieldManager());
            messageLabelField的LabelField =新的LabelField(请输入您的Sveet消息:Field.FIELD_HCENTER){
            保护无效漆(图形图像){
                graphics.setColor(Color.YELLOWGREEN);
                super.paint(图形);
            }
        };
    EditField中sveetTexteditField =新EditField中(NULL,Sveet消息,50,EditField.FIELD_HCENTER
                    | EditField.FIELD_VCENTER
                    | EditField.NON_SPELLCHECKABLE | EditField.NO_NEWLINE);
        VerticalFieldManager buttonVFManager =新VerticalFieldManager(VerticalFieldManager.FIELD_HCENTER);
        Horizo​​ntalFieldManager hfManager =新Horizo​​ntalFieldManager();
        sveetNowlabelField =新ButtonField字段(现在Sveet);
        sveetLaterlabelField =新ButtonField字段(Sveet后来);
        sveetNowlabelField.setChangeListener(本);
        sveetLaterlabelField.setChangeListener(本);
        加(messageLabelField);
        加(sveetTexteditField);
        hfManager.add(sveetNowlabelField);
        hfManager.add(sveetLaterlabelField);
        buttonVFManager.add(hfManager);
        加(buttonVFManager);
    }
    公共布尔isEditable(){
        返回true;
    }    保护布尔keyChar(字符C,INT的地位,诠释时间){
        布尔retVal的= FALSE;        如果(C == Characters.ESCAPE){
            。Ui.getUiEngine()popScreen(本);
            retVal的= super.keyChar(C,状态,时间);        }
        返回retVal的;
    }    公共无效fieldChanged(场场,诠释上下文){
        如果(sveetNowlabelField ==场){            //这里直接上传启动文件
            beginUpload();
        }否则如果(sveetLaterlabelField ==场){
            //首先拿起时上传
            scheduledTime = getScheduleTime();
            如果(scheduledTime!= 1L){
                //现在开始上传文件
                beginUpload();
            }
    }}    类SubscribingThread扩展StoppableThread {
        INT网络= 50;        公共无效的run(){        }
    }    公共无效beginUpload(){
        尝试{
            watingScreen =新WatingScreen(上传Sveet ......);
            / *
             * UiApplication.getUiApplication()。invokeAndWait(Runnable的新(){
             *公共无效的run(){Ui.getUiEngine()pushScreen(watingScreen)。 }
             *});
             * /
            BaseScreen.pushScreen(watingScreen);
            线程线程=新主题(新的Runnable(){
                公共无效的run(){
                    uploadToServer();
                }
            });
            thread.start();
            // uploadToServer();
        }赶上(例外五){
            // TODO自动生成catch块
            e.printStackTrace();
        } {最后        }
    }    私人长期getScheduleTime(){
        scheduledTime = 0;
        最终的DateTimePicker datePick = DateTimePicker.createInstance();
        UiApplication.getUiApplication()。invokeAndWait(Runnable的新(){
            公共无效的run(){
                // TODO自动生成方法存根
                日历currentCalendar = datePick.getDateTime();
                datePick.setMinimumDate(currentCalendar);
                datePick.doModal();
                日历CAL = datePick.getDateTime();
                如果(cal.after(currentCalendar)){
                    日期日期= cal.getTime();
                    Dialog.alert(你选择了与Date.toString +());
                    scheduledTime = date.getTime();
                }其他{
                    Dialog.alert(无效的日期选择);
                    scheduledTime = 1L;
                }
            }
        });        的System.out.println(日期以毫秒为:+ scheduledTime);
        返回scheduledTime;
    }公共无效uploadToServer(){    }公共无效dialogClosed(对话为arg0,ARG1 INT){    }
}类MyCustimGridFieldManager扩展了VerticalFieldManager {    公共MyCustimGridFieldManager(){
        超(VERTICAL_SCROLL | USE_ALL_WIDTH | FIELD_HCENTER);
    }    保护无效漆(图形克){
        super.paint(克);
    }}


解决方案

尝试添加 Field.EDITABLE 你的风格的EditField中。

I have created my own custom popup screen to which now I am trying to add a editfield , everything seems to be fine but the problem is that I am not able to write anything in the edit field

class sveetIt extends PopupScreen implements FieldChangeListener, DialogClosedListener {

    Hashtable pitemData;
    ButtonField sveetNowlabelField;
    ButtonField sveetLaterlabelField;
    WatingScreen watingScreen;
    long scheduledTime;
    Dialog updateDialog;

    public sveetIt() {
        super(new MyCustimGridFieldManager());
            LabelField messageLabelField = new LabelField("Enter your Sveet Message:",Field.FIELD_HCENTER) {
            protected void paint(Graphics graphics) {
                graphics.setColor(Color.YELLOWGREEN);
                super.paint(graphics);
            }
        };
    EditField sveetTexteditField= new EditField(null, "Sveet Message", 50, EditField.FIELD_HCENTER
                    | EditField.FIELD_VCENTER 
                    | EditField.NON_SPELLCHECKABLE | EditField.NO_NEWLINE);
        VerticalFieldManager buttonVFManager = new VerticalFieldManager(VerticalFieldManager.FIELD_HCENTER);
        HorizontalFieldManager hfManager = new HorizontalFieldManager();
        sveetNowlabelField = new ButtonField("Sveet Now");
        sveetLaterlabelField = new ButtonField("Sveet Later");
        sveetNowlabelField.setChangeListener(this);
        sveetLaterlabelField.setChangeListener(this);
        add(messageLabelField);
        add(sveetTexteditField);
        hfManager.add(sveetNowlabelField);
        hfManager.add(sveetLaterlabelField);
        buttonVFManager.add(hfManager);
        add(buttonVFManager);
    }
    public boolean isEditable() {
        return true;
    }

    protected boolean keyChar(char c, int status, int time) {
        boolean retVal = false;

        if (c == Characters.ESCAPE) {
            Ui.getUiEngine().popScreen(this);
            retVal = super.keyChar(c, status, time);

        }
        return retVal;
    }

    public void fieldChanged(Field field, int context) {
        if (sveetNowlabelField == field) {          

            //Here directly starts uploading file
            beginUpload();
        } else if (sveetLaterlabelField == field) {
            // first picks up time when to upload
            scheduledTime = getScheduleTime();
            if(scheduledTime!=1L) {
                //now begins uploading file
                beginUpload();
            }
    }}

    class SubscribingThread extends StoppableThread {
        int network = 50;

        public void run() {

        }
    }

    public void beginUpload() {
        try {
            watingScreen = new WatingScreen("Uploading Sveet...");
            /*
             * UiApplication.getUiApplication().invokeAndWait( new Runnable() {
             * public void run() { Ui.getUiEngine().pushScreen(watingScreen); }
             * });
             */
            BaseScreen.pushScreen(watingScreen);
            Thread thread = new Thread(new Runnable() {
                public void run() {
                    uploadToServer();
                }
            });
            thread.start();
            // uploadToServer();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {

        }
    }

    private long getScheduleTime() {
        scheduledTime = 0;
        final DateTimePicker datePick = DateTimePicker.createInstance();
        UiApplication.getUiApplication().invokeAndWait(new Runnable() {
            public void run() {
                // TODO Auto-generated method stub
                Calendar currentCalendar = datePick.getDateTime();
                datePick.setMinimumDate(currentCalendar);
                datePick.doModal();
                Calendar cal = datePick.getDateTime();
                if (cal.after(currentCalendar)) {
                    Date date = cal.getTime();
                    Dialog.alert("You selected " + date.toString());
                    scheduledTime = date.getTime();
                } else {
                    Dialog.alert("Invalid date selection");
                    scheduledTime = 1L;
                }
            }
        });

        System.out.println("date in MilliSeconds is:" + scheduledTime);
        return scheduledTime;
    }

public void uploadToServer() {

    }   public void dialogClosed(Dialog arg0, int arg1) {

    }
}

class MyCustimGridFieldManager extends VerticalFieldManager {

    public MyCustimGridFieldManager() {
        super(VERTICAL_SCROLL | USE_ALL_WIDTH | FIELD_HCENTER);
    }

    protected void paint(Graphics gr) {
        super.paint(gr);
    }

}

解决方案

Try adding Field.EDITABLE to your style for the EditField.

这篇关于添加到编辑框弹出窗口的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆