私はブラックベリーカーブ8300に取り組んでいます
メイン画面にいくつかのコンポーネントを追加しました。トラックボールが上下に移動するとフォーカスを垂直に移動し、トラックホイールが左右に移動するとフォーカスを水平に移動します。
================================================== ================================
--Title area that contains a focusable field(BACK)--
--Non focusable Label field that indicates the name of the user--
--A horizontal field manager1 that contains 4 buttons--
--A horizontal field manager2 that contains 4 buttons--
--A horizontal field manager2 that contains 4 buttons--
================================================== ================================
ここで、現在フォーカスが BACK ボタンにあり、トラック ホイールを下にスクロールすると、フォーカスが manager1 の 1 番目のボタンに来るはずです。再び下にスクロールすると、フォーカスは manager1 の 2 番目のボタンではなく、manager2 の 1 番目のボタンに来るはずです(デバイス上で発生しているため)
私のコードは:::
protected boolean trackwheelRoll(int amount, int status, int time)
{
focusIndex = this.getFieldWithFocusIndex();
System.out.println("focus index ::::::::::::::::"+focusIndex);
Field f;
if(focusIndex!=0)
{
if(amount==-1)
{
//move up
if(focusIndex>=0)
{
focusIndex = focusIndex-1;
f = getField(focusIndex);
f.setFocus();
}
}
if(amount==1)
{
//moving down
if(focusIndex<=3)
{
f = getField(++focusIndex);
f.setFocus();
}
}
}
return super.trackwheelRoll(amount, status, time);
}
このコントロールがシミュレーターで突然移動した後でも、デバイスでは変更が行われませんでした