2
我有一個帶有選項卡的主屏幕。每個標籤都有自己的覆蓋navigationClick方法,看起來像這樣列表中的選項卡黑莓
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();
}
然而,在我mainscreen,有一個horizontalfieldmanager這些選項卡3。重寫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下面的處理列表字段上的點擊,但是,因爲我已經覆蓋導航clickClick,該標籤切換不再起作用。任何人有任何想法爲什麼?
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;字段field = this.getFieldWithFocus(); ...現在的標籤工作,但選擇列表項不起作用 – mikez
我認爲,而不是使用this.getFieldWithFocus()。做一些像if(field.isFocus()){//你的代碼//} 它可能是塞滿了,因爲它是在你關注其他領域時觸發的。 –