Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Blackberry 如何检测字段是否被触摸或点击?_Blackberry_Touch Event - Fatal编程技术网

Blackberry 如何检测字段是否被触摸或点击?

Blackberry 如何检测字段是否被触摸或点击?,blackberry,touch-event,Blackberry,Touch Event,我像这样重写这个方法 newsbtn=新自定义按钮字段(新闻、新闻活动、新闻活动){ 受保护的布尔导航单击(int状态,int时间){ Main.getUiApplication().pushScreen( 新菜单_弹出菜单(位置)); 返回true; } 受保护的布尔touchEvent(touchEvent消息){ int eventCode=message.getEvent(); if(eventCode==TouchEvent.UNCLICK){ Main.getUiApplicatio

我像这样重写这个方法

newsbtn=新自定义按钮字段(新闻、新闻活动、新闻活动){
受保护的布尔导航单击(int状态,int时间){
Main.getUiApplication().pushScreen(
新菜单_弹出菜单(位置));
返回true;
}
受保护的布尔touchEvent(touchEvent消息){
int eventCode=message.getEvent();
if(eventCode==TouchEvent.UNCLICK){
Main.getUiApplication().pushScreen(
新菜单_弹出菜单(位置));
}
返回true;
}
};
添加(新闻BTN);
这是
自定义按钮字段

公共类自定义按钮字段扩展按钮字段{
位图异常;
位图聚焦;
位图标记;
国际宽度;
整数mHeight;
私有int color=-1;
字符串文本;
公共自定义按钮字段(位图普通、位图聚焦、位图活动){
超级(单击| Field.FOCUSABLE | Field.Field|HCENTER
|字段。字段(VCENTER);
M正常=正常;
聚焦=聚焦;
mActive=活跃;
mWidth=mNormal.getWidth();
mHeight=mNormal.getHeight();
setMargin(0,0,0,0);
设置填充(0,0,0,0);
SetBeOrder(BorderFactory.CreateSimpleOrder(新的XYEdge(0,0,0,0));
设置顺序(视觉状态激活,
createSimpleOrder(新的XYEdge(0,0,0,0));
}
公共自定义按钮字段(字符串文本、普通位图、聚焦位图、,
位图(活动,int颜色){
超级(单击| Field.FOCUSABLE | Field.Field|HCENTER
|字段。字段(VCENTER);
这个颜色=颜色;
M正常=正常;
聚焦=聚焦;
mActive=活跃;
mWidth=mNormal.getWidth();
mHeight=mNormal.getHeight();
setMargin(0,0,0,0);
设置填充(0,0,0,0);
SetBeOrder(BorderFactory.CreateSimpleOrder(新的XYEdge(0,0,0,0));
设置顺序(视觉状态激活,
createSimpleOrder(新的XYEdge(0,0,0,0));
this.text=文本;
}
公共自定义按钮字段(字符串文本、普通位图、聚焦位图、,
位图活动、整型颜色、长样式){
超级(风格);
这个颜色=颜色;
M正常=正常;
聚焦=聚焦;
mActive=活跃;
mWidth=mNormal.getWidth();
mHeight=mNormal.getHeight();
setMargin(0,0,0,0);
设置填充(0,0,0,0);
SetBeOrder(BorderFactory.CreateSimpleOrder(新的XYEdge(0,0,0,0));
设置顺序(视觉状态激活,
createSimpleOrder(新的XYEdge(0,0,0,0));
this.text=文本;
}
公共void setText(字符串文本){
this.text=文本;
使无效();
}
公共字符串getText(){
返回文本;
}
公共void setColor(int-color){
这个颜色=颜色;
}
焦点上的受保护无效(int方向){
超级聚焦(方向);
颜色=0x540604;
这个。使无效();
}
受保护的无效onnfocus(){
super.onnfocus();
颜色=颜色。白色;
这个。使无效();
}
受保护的空心漆(图形){
内容;
如果(Display.getWidth()>480)
fontcontent=28;
else if(Display.getWidth()<481&&Display.getWidth()>320)
fontcontent=23;
其他的
内容=18;
位图=空;
开关(getVisualState()){
案例视觉状态正常:
位图=正常;
打破
案例视觉状态焦点:
位图=MFoccused;
打破
案例视觉状态激活:
位图=mActive;
打破
违约:
位图=正常;
}
setBackground(BackgroundFactory.createBitmapBackground(位图));
graphics.setFont(Font.getDefault().derivate(Font.PLAIN,fontcontent));
图形。设置颜色(颜色);
graphics.drawText(text,(mNormal.getWidth()-Font.getDefault())
.getAdvance(text))/2,((mNormal.getHeight()-Font
.getDefault().getHeight())/2)+10,DrawStyle.HCENTER
|DrawStyle.VCENTER);
}
public int getPreferredWidth(){
返回mWidth;
}
public int getPreferredHeight(){
返回mhweight;
}
受保护的空心布局(内部宽度、内部高度){
设置范围(mWidth,mHight);
}
}

但是,该按钮无法执行推屏操作,只能在按钮上设置焦点()。

自定义按钮字段的父字段是什么


如果是按钮字段,则必须在构造函数中设置属性CONSUME\u CLICK

您不必使用
CONSUME\u CLICK
构造函数字段,只需获得点击。它确定字段是否使用单击事件,或允许它们传播到其他类以进行处理。但是,海报的代码已经在他的两次点击处理方法中返回了
true
,这也意味着“我已经处理了这个点击……不要麻烦将它传递给其他
字段
类”

正如Alan在评论中所说,他已经在使用
consumer\u CLICK
,所以这绝对不是问题所在

如果
Custom_ButtonField
类是同一个类,那么当我使用您的代码时,我可以很好地获得单击。然而,我可以看到一个潜在的问题。您不显示Java导入。您的
TouchEvent
导入是否如下所示

import net.rim.device.api.ui.TouchEvent;
BlackBerry框架中实际上还有另一个
TouchEvent
类,如果您使用了错误的类,那么您创建的方法实际上不会覆盖基类
TouchEvent()
。使用Eclipse快捷方式输入您的导入很容易,但可能会得到错误的导入

但是,我认为如果您这样做,Eclipse应该显示一个警告,即永远不会调用不正确版本的
touchEvent()

编辑:顺便说一句,我通常会在
触摸屏上触发我的点击处理代码