2012-06-12 33 views
0

我正在嘗試爲定製按鈕和位圖字段設置一個通用偵聽器。我能夠在偵聽器中訪問,但無法區分兩個字段。無法在BlackBerry開發中設置通用偵聽器

private class MeaningsDetailsPageListner implements FieldChangeListener{ 
    public void fieldChanged(Field field, int arg1) { 
     Dialog.alert("Hi"); 
     if(field == bField){ 
      Dialog.alert("Image Clicked"); 
     }else if(field == wordBtn){ 
      Dialog.alert("Button Clicked!!"); 
     } 
    } 
} 

在下面的代碼wordBtn是我定製的按鈕,另一種是BitmapField.I我越來越喜警報,但不能進一步區分。

任何幫助,將不勝感激。

+0

你定製的按鈕的類名是什麼? – Rupak

+0

使用'instanceof'操作符可能會有幫助。檢查這個,http://pastebin.com/KKCyztG2。 – Rupak

+0

你嘗試過現場改變監聽器嗎? – Signare

回答

0

儘管我看到你正在嘗試做什麼,但最好將每個字段的FieldChangeListener作爲匿名類別單獨添加。這樣,當您在fieldChanged內部進行相等性測試時,您不必擔心將字段強制轉換爲正確的類型。

ButtonField b = new ButtonField("Hello!"); 
b.setChangeListener(new FieldChangeListener() { 

    public void fieldChanged(Field field, int context) { 
     Dialog.alert("Button clicked"); 
    } 
}); 
+0

但是,如果字段沒有比較,那麼我們不能分隔字段type.And我的問題是我想點擊另一個字段時單擊1字段,他們都在同一個經理。 – jACOB

+0

字段的設計目的不是爲了記住它們何時被點擊,儘管它們確實存儲了它們的狀態是否在Field.isMuddy和Field.isDirty中更改。要做到這一點,你應該實現一個標誌來指示哪些字段已被點擊。 – donturner