黑莓Storm 9530的跟踪触摸事件,同时滚动
-
25-09-2019 - |
题
哎在我的屏幕有一个编辑字段和2个的自定义按钮字段为“OK”和“取消” 下面ButtonField字段有一些更focussable标签字段
当我写在编辑栏,然后按输入一个名字,然后重点涉及到“确定”按钮,但如何将焦点设置“取消”按钮。
此外滚动时焦点不会自动前进???
做什么可以是I M与触摸事件和它们的处理混淆!!!
请帮助!!!!!!!!!!!!
代码:
txt_Name = new EditField(TextField.NO_NEWLINE)
{
public void paint(net.rim.device.api.ui.Graphics g)
{
g.setColor(Color.MAROON);
super.paint(g);
}
};
txt_Name.setFont(font);
v1 = new VerticalFieldManager();
v1.add(txt_Name );
ButtonField btn1 = new ButtonField("OK",ButtonField.CONSUME_CLICK);
ButtonField btn2 = new ButtonField("CANCEL",ButtonField.CONSUME_CLICK);
v2 = new VerticalFieldManager();
v2.add(btn1);
v2.add(btn2);
LabelField l1 = new LabelField("Hello Moon ",Field.Focussable);
LabelField l2 = new LabelField("Hello Citizen",Field.Focussable);
LabelField l3 = new LabelField("Hello People",Field.Focussable);
LabelField l4 = new LabelField("Hello world",Field.Focussable);
v3 = new VerticalFieldManager();
v3.add(l1);
v3.add(l2);
v3.add(l3);
v3.add(l4);
add(v1);
add(v2);
add(v3);
}
protected boolean navigationClick(int status, int time)
{
if(OK.isFocus())
{
//execute some code
return true;
}
if(CANCEL.isFocus())
{
//execute some code
return true;
}
}
解决方案 2
txt_Name = new EditField(TextField.NO_NEWLINE)
{
public void paint(net.rim.device.api.ui.Graphics g)
{
g.setColor(Color.MAROON);
super.paint(g);
}
};
txt_Name.setFont(font);
v1 = new VerticalFieldManager();
v1.add(txt_Name );
ButtonField btn1 = new ButtonField("OK",ButtonField.CONSUME_CLICK);
ButtonField btn2 = new ButtonField("CANCEL",ButtonField.CONSUME_CLICK);
h2 = new HorizontalalFieldManager();
h2.add(btn1);
h2.add(btn2);
LabelField l1 = new LabelField("Hello Moon ",Field.Focussable);
LabelField l2 = new LabelField("Hello Citizen",Field.Focussable);
LabelField l3 = new LabelField("Hello People",Field.Focussable);
LabelField l4 = new LabelField("Hello world",Field.Focussable);
v3 = new VerticalFieldManager();
v3.add(l1);
v3.add(l2);
v3.add(l3);
v3.add(l4);
add(v1);
add(h2);
add(v3);
}
protected boolean navigationClick(int status, int time)
{
int index = h2.getFieldwithFocusIndex();
if(h2==0)
{
//execute some code for OK
return true;
}
if(h2==1)
{
//execute some code for cancel
return true;
}
}
其他提示
我发就像马克建议的,为每个按钮单独FieldChangeListeners:
class Scr extends MainScreen {
EditField txt_Name;
ButtonField btnOK;
ButtonField btnCancel;
VerticalFieldManager v1;
VerticalFieldManager v2;
VerticalFieldManager v3;
Font font = Font.getDefault().derive(Font.BOLD, 20);
public Scr() {
txt_Name = new EditField(TextField.NO_NEWLINE) {
public void paint(net.rim.device.api.ui.Graphics g) {
g.setColor(Color.MAROON);
super.paint(g);
}
};
txt_Name.setFont(font);
v1 = new VerticalFieldManager();
v1.add(txt_Name);
btnOK = new ButtonField("OK", ButtonField.CONSUME_CLICK);
btnOK.setChangeListener(
new FieldChangeListener(){
public void fieldChanged(Field field, int context) {
Dialog.inform("OK pressed");
}});
btnCancel = new ButtonField("Cancel", ButtonField.CONSUME_CLICK);
btnCancel.setChangeListener(
new FieldChangeListener(){
public void fieldChanged(Field field, int context) {
Dialog.inform("Cancel pressed");
}});
v2 = new VerticalFieldManager();
v2.add(btnOK);
v2.add(btnCancel);
LabelField l1 = new LabelField("Hello Moon", Field.FOCUSABLE);
LabelField l2 = new LabelField("Hello Citizen", Field.FOCUSABLE);
LabelField l3 = new LabelField("Hello People", Field.FOCUSABLE);
LabelField l4 = new LabelField("Hello world", Field.FOCUSABLE);
v3 = new VerticalFieldManager();
v3.add(l1);
v3.add(l2);
v3.add(l3);
v3.add(l4);
add(v1);
add(v2);
add(v3);
}
}
现在,它似乎是OK:点击 替代文字http://img40.imageshack.us/img40/6472/textentered.jpg 替代文字http://img59.imageshack.us/img59/7574/okpressed .JPG 替代文本http://img641.imageshack.us/img641/ 9246 / cancelpressed01.jpg
<强>更新强>
斯瓦特我可以点击使用鼠标点击与风暴模拟器这些按钮。 我再也找不到比鳕模拟器文件是从老版本的任何其他解释。您可以通过改变代码的任何标签文本快速检查,然后部署和检查,如果这种变化将在应用设备上应用。在情况下,如果不是,这是旧版本,并且应该再次清洁模拟器和部署应用程序。点击 希望这会帮助你!点击 另请参见黑莓 - 更改没有得到体现在我的应用程序一>
可以通过覆盖含有可聚焦领域,如好屏幕或管理者的“navigationMovement”方法控制聚焦顺序和取消按钮。只是评价该方法,设定的对焦通过使用Field.setFocus()所需的字段的参数,并返回true。
对于不带滚动向前迈进的焦点 - 这只是方式的触摸屏用户界面的作品。焦点仅当触摸可聚焦场移动 - 。因此,如果您不接触任何可聚焦的字段时,你“轻拂”屏幕滚动,焦点不会改变