2013-02-23 58 views
1

我創建了一個表,並嘗試使用光標如下來從它的數據:光標和獲取數據的問題?

public Cursor getcontent() { 
    Cursor d = database.query(DatabaseHandler.Table_Name2,allColumns,selection, null, null,null,null); 
    return d; 
} 
Cursor r = X.getcontent(); 
if (r.getCount() > 0) { 
    r.moveToFirst(); 
    do { 
     String id = r.getString(r.getColumnIndex("content_id")); 
     al.add(id); 
     MainActivity.tt1.append("\n"); 
     MainActivity.tt1.append(id); 
    } while (r.moveToNext()==true); 
     r.close(); 
    } else { 
     Log.i("TAG"," No value found"); 
    }  
} 

我顯示的結果在TextView看到什麼數據是牽強。我的問題是,當我運行這段代碼時,它有時會顯示TextView中的數據,無論它已被提取,有時它不會。它的比例是50:50,根據我的說法,每次我不知道什麼是錯誤時,每次都會提取數據,因此每次有人會告訴我這裏有什麼問題?

+0

你調試代碼,它總是在上面,你檢查光標的大小if語句。 – Prateek 2013-02-23 05:54:29

+0

確保getContent未返回空值。而不是檢查r.getCount()調用r.moveToFirst(),然後使用r.isAfterLast == true。 – 2013-02-23 06:22:37

回答

1

檢查您得到的光標是否爲空。如果是,那麼光標計數是什麼。你可以通過下面的方式做到這一點。

Cursor r = X.getcontent(); 
if ((r != null) && (r.getCount() > 0)) { 
    r.moveToFirst(); 
    do { 
     String id = r.getString(r.getColumnIndex("content_id")); 
     al.add(id); 
     MainActivity.tt1.append("\n"); 
     MainActivity.tt1.append(id); 
    } while (r.moveToNext()); 
    r.close(); 
} else { 
    Log.i("TAG"," No value found inside Cursor"); 
} 
0

嘗試這樣