本文介绍了添加到编辑框弹出窗口的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我创建自己的自定义弹出窗口,以现在我想添加一个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); HorizontalFieldManager hfManager =新HorizontalFieldManager(); 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.
更多推荐
添加到编辑框弹出窗口
发布评论