2
私はタブ付きメインスクリーンを持っています。各タブには、このリストフィールドのブラックベリー
protected boolean navigationClick(int status, int time) {
fieldChangeNotify(1);
return true;
}
及びその他の方法
public boolean isFocusable() {
return true;
}
protected void drawFocus(Graphics graphics,
boolean on) {
// Don't draw the default focus
}
protected void onFocus(int direction) {
super.onFocus(direction);
invalidate();
}
protected void onUnfocus() {
super.onUnfocus();
invalidate();
}
のように見える独自の上書きnavigationClick方法は、しかし、私のmainscreenに、これらのタブの3はhorizontalfieldmanagerにありました。オーバーライドされたfieldChangedは、次のように実装されます。
public void fieldChanged(Field field, int context) {
if (_tabArea != null) {
if (field == _tab1) {
delete(_tabArea);
_tabArea = displayTab1();
add(_tabArea);
} else if (field == _tab2) {
delete(_tabArea);
_tabArea = displayTab2();
add(_tabArea);
} else if (field == _tab3) {
delete(_tabArea);
_tabArea = displayTab3();
add(_tabArea);
}
}
}
タブを切り替える。私は、ナビゲーションフィールドのクリックを処理するnavigationClickを以下のように持っていますが、navigationClickをオーバーライドして以来、このタブの切り替えはもはや機能しません。誰でも何か考えがありますか?
protected boolean navigationClick(int status, int time) {
Field field = _listfield;
if(field instanceof ListField)
{
int selected = _listfield.getSelectedIndex();
switch (selected) {
case 0:
delete(_tabArea);
All all = new All();
_tabArea = all.getVFM();
add(_tabArea);
break;
case 1:
break;
}
return true;
}
return super.navigationClick(status, time);
}
はい、これは次のように見えます。http://justpaste.it/mc4 – mikez
フィールドを変更しました= _listfield;フィールドへのフィールド= this.getFieldWithFocus(); ...タブは機能しますが、リスト項目を選択すると機能しません。 – mikez
this.getFieldWithFocus()を使用する代わりに、私は思っています。 if(field.isFocus()){//あなたのコード//} 他のフィールドに集中するとトリガーになるので、おそらく詰まっているでしょう。 –