我希望得到一點反饋。當涉及到任何android或java編程時,我都是初學者,所以不確定這個領域屬於哪個領域。我有2個函數(是正確的術語?就像在VB中)返回一個字符串數組或另一個int數組基於一個光標我傳遞給它。我無法弄清楚最長的是爲什麼我的int數組函數在我的Cursor中確認數據時沒有返回任何數據。事實證明,我將傳遞給我的第一個函數(字符串數組)的Cursor會移動光標位置,因爲函數會迭代光標數據。在字符串數組函數後,我將光標傳遞給我的int數組函數。這一個不會返回我的int數組中的任何數據,我只是想了一會兒,直到我意識到它只是看到了光標的末尾,並假設它已經完成了它的工作。一旦我添加了一個cursor.moveToPosition(-1),它效果很好。 java/android不能像VB那樣工作嗎?在VB.net中,我可以將一個對象傳遞給一個函數,該函數不會影響我傳遞的原始對象。對不起,冗長的電子郵件,只是不知道該怎麼說。2個功能之間傳遞的對象
也許我寫了這個錯誤,所以我已經在下面添加了我的代碼,所以你們可以告訴我,如果我做錯了什麼。
CompanyList = mDbHelper.CompanyNames(searchParam, SearchedColumn);
String CompanyNames[] = mDbHelper.CursorToString(CompanyList, "CompanyName");
final int CompanyID[] = mDbHelper.CursorToInt(CompanyList, "CompanyID");
public String[] CursorToString(Cursor cursor, String columnName){
int cursorCount = cursor.getCount();
if (cursorCount > 0){
String[] str = new String[cursorCount];
int i = 0;
while (cursor.moveToNext()){
str[i] = cursor.getString(cursor.getColumnIndex(columnName));
i++;
}
return str;
}
return new String[]{};
}
public int[] CursorToInt(Cursor cursor, String columnName) {
int cursorCount = cursor.getCount();
if (cursorCount > 0) {
int[] number = new int[cursorCount];
int i = 0;
cursor.moveToPosition(-1);
while (cursor.moveToNext()){
number[i] = cursor.getInt(cursor.getColumnIndex(columnName));
i++;
}
return number;
}
return null;
}
當時,不知道。謝謝你的信息。 – Huascar 2011-05-01 14:48:45