我制作了一个弹出屏幕,其中有一个
编辑字段和两个按钮字段。
现在我面临着一个非常棘手的问题,有两个按钮,一个是Cancel
,另一个是Send button
。现在我添加的第一个按钮工作不正常,第二个按钮工作正常。为了简单起见,在这个代码中Cancel button
将工作,而Send button
将不工作。我在这里缺少的东西,任何人都能帮助我吗
ButtonField sendButton,cancelButton;
PinPopup()//Constructor
{
super(new HorizontalFieldManager());
texts=new EditField("","",200,Field.EDITABLE);
sendButton = new ButtonField(" Send ");
sendButton.setChangeListener(this);
cancelButton = new ButtonField("Cancel");
cancelButton.setChangeListener(this);
VerticalFieldManager _fieldManagerContext = new VerticalFieldManager(VerticalFieldManager.USE_ALL_WIDTH | VerticalFieldManager.USE_ALL_HEIGHT)
{
public void sublayout(int width,int height) {
super.sublayout(width, height);
int xpos = 10;
int ypos = 40;
Field field = getField(0);
layoutChild(field, 280, 50);
setPositionChild(field, xpos, ypos);
Field field1 = getField(1);
layoutChild(field1, 280, 50);
setPositionChild(field1, xpos+10, ypos+80);
Field field2 = getField(2);
layoutChild(field2, 280, 50);
setPositionChild(field2, xpos+145, ypos+80);
setPosition(150, 220);
setExtent(300, 220);
}
public void paint(){
Overrided
}
_fieldManagerContext.add(texts);
_fieldManagerContext.add(sendButton);
_fieldManagerContext.add(cancelButton);
public void fieldChanged(Field field, int context)
{
if(field==cancelButton)
{
Dialog.inform("Cancel");
}
if(field){
Dialog.inform("Send");
}
}
更新
if(field==sendButton){
Dialog.inform("Send");
}
更新我也试过了,但现在同样的问题是,伙计们该怎么办
cancelButton = new ButtonField("Cancel") {
protected boolean navigationClick(int status, int time) {
return true;
}
};
在FieldChangeListener中,对于Send,您检查的是if(field)
而不是if(field == sendButton)
我遇到的问题是因为我在一行中添加了两个按钮,并且我使用了VerticalFieldManager来添加按钮,这就是我遇到问题的原因。对于解决方案,我在HorizontalFeildManager中添加了按钮,现在它运行良好
VerticalFieldManager_fieldManagerContext=新的VerticalFieldManager(VerticalFieldManagement.USE_ALL_WIDTH|VerticalFieldManager/USE_ALL_HEIGHT)
到这个
HorizontalFieldManager_fieldManagerContext=新的HorizontalFieldManager(USE_ALL_WIDTH)