Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/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 Field.VISUAL_STATE_NORMAL_Blackberry - Fatal编程技术网

Blackberry Field.VISUAL_STATE_NORMAL

Blackberry Field.VISUAL_STATE_NORMAL,blackberry,Blackberry,我正在尝试创建一个与iPhone上的UISegmentedControl相当的控件,它是三个类似单选按钮的按钮。这个想法是当一个被选中时,它将被禁用,并且具有不同的视觉样式 这些按钮直接从字段子类化,以获得所需的视觉样式,并在自定义GridFieldManager中分组 问题在于单击时,按钮的行为与预期一致,但一旦焦点移动,按钮将恢复为Field.Visual_STATE_NORMAL(由控制台输出证明)。包含GridFieldManager的唯一定制是一对循环,用于确定使用该管理器的其他区域的

我正在尝试创建一个与iPhone上的UISegmentedControl相当的控件,它是三个类似单选按钮的按钮。这个想法是当一个被选中时,它将被禁用,并且具有不同的视觉样式

这些按钮直接从字段子类化,以获得所需的视觉样式,并在自定义GridFieldManager中分组

问题在于单击时,按钮的行为与预期一致,但一旦焦点移动,按钮将恢复为Field.Visual_STATE_NORMAL(由控制台输出证明)。包含GridFieldManager的唯一定制是一对循环,用于确定使用该管理器的其他区域的焦点

按钮初始化如下:

private void init() {
    this.setBackground( Field.VISUAL_STATE_NORMAL, BackgroundFactory.createLinearGradientBackground(0xfc9b68, 0Xfc9b68, 0xff5800, 0xff5800) );
    this.setBackground( Field.VISUAL_STATE_DISABLED, BackgroundFactory.createLinearGradientBackground(0xe78568, 0xff5800, 0xd53000, 0xd53000) );
    this.setBackground( Field.VISUAL_STATE_FOCUS, BackgroundFactory.createLinearGradientBackground(0xd8d8d8, 0xd8d8d8, 0x0000000, 0x000000) );
}

问题在于,不知何故,每个按钮的视觉状态都被重置。简言之,客户希望黑莓应用程序的外观和行为与iPhone或Android应用程序一模一样。任何关于如何实现这一点的想法都将不胜感激。

我找到的解决方案是在主屏幕中设置和取消设置字段时添加一个标记以跟踪字段是否被选中。基于该标志,每次重新绘制时,可视状态都会根据需要进行更新。

修复。使用标志设置选定状态,然后在每次调用绘画时适当重置视觉效果。请为您的问题添加答案并接受