2011-11-28 158 views
0

我是黑莓發展的新手。我想知道是否有任何其他方式來解決我的申請。我已經開發了顯示是一個簡單的計算器應用程序,是否可以將2個參數傳遞給listfieldcallback類?

value1 : 6 
value2 : 3 
Calculate 

+ : 9 
- : 3 
* : 18 
/: 2 

其中值1和值2是兩個編輯字段,計算是ButonField。在我的代碼中,我寫了一個字符串數組{「+」,「 - 」,「*」,「/」},用於傳遞給實現ListFieldCallBack的類。

它是編碼像

for(int i = 0; i<array.length;i++) 
     { 
      mylist.insert(i); 
        //calculated the result 
      myCallBack.insert(array[i]+"#"+result); 
     } 

在我drawListRow我已經分隔的數組值和結果。並以兩種文字顯示。

它運作良好。現在我的問題是,是否有任何其他方式,我可以傳遞數組中的值和計算結果?現在我將數組值和結果作爲一個字符串傳遞並將其拆分以顯示我的結果。但如果可以分別傳遞參數,我不需要在那裏使用splitter函數。那麼這是怎麼回事?或者還有其他方法嗎? PLZ建議

回答

3

嗯,這與黑莓無關。這與我們在面向對象代碼中使用的習慣用法有關。

由於您的列表項目代表2個信息 - 一個數學運算和結果 - 你需要創建一個封裝的2件信息的列表項的模型:

public class ListItem { 

    public final String operation; 
    public final String result; 

    public ListItem(String operation, String result) { 
     this.operation = operation; 
     this.result = result; 
    } 
} 

然後內部ListFieldCallBack你應該有VectorListItem實例。因此,當您撥打myCallBack.insert(new ListItem(operation, result));時,它會將列表項添加到向量中。

當您在drawListRow(ListField listField, Graphics graphics, int index, int y, int width)中時,首先按索引獲取列表項,然後您可以輕鬆獲取列表項狀態,而無需拆分字符串或執行任何其他髒操作。所以代碼變得乾淨,並且OOP-ish:

ListItem li = // get ListItem by index 

li.operation; // operation 
li.result; // result 
+0

+1給出詳細的答案... – BBdev

+0

@Arhimed: - 謝謝Arhimed。其實我已經嘗試過了。但是在ListFieldCallBack的插入函數中,我犯了錯誤。烏爾的指導真的幫助了我。非常感謝 –

相關問題