2012-11-16 62 views
-4

我用cursor從數據庫中獲取數據,但是裏面有一些不必要的數據。我想知道如何顯示我想要顯示的數據,而不是我從數據庫中得到的所有數據,在查詢時我無法判斷這個數據庫,只有在我得到數據後才能處理它,我希望應用程序可以在獲取數據後自動過濾數據。如何在將數據從數據庫中取出之前過濾數據?

新的編輯

我認爲,把所有的數據在一個列表,使用列表作爲數據源。(我使用的應用程序的ListView),但已經有一個cursoradapter和一些方法,如bindView如果我添加一個新的適配器,代碼將太複雜和雜亂。

+1

爲什麼你不使用WHERE-clausel?就像「Select * From TableXY Where _id <5;」 – Prexx

回答

0

你可以嘗試像...

private static final Uri SMS_URI = Uri.parse("content://sms"); 
private static final String[] COLUMNS = new String[] {"date", "address", "body", "type"}; 
private static final String WHERE = "type = 2"; 
private static final String ORDER = "date DESC"; 

// ... 
ContentResolver cr = getContentResolver(); 
Cursor cursor = cr.query(SMS_URI, COLUMNS, WHERE + " AND date > " + 
      timeLastChecked, null, ORDER); 

這可以讓你查詢content://sms並只返回COLUMNS你想要的,適合你的WHERE標準,在ORDER你描述下。 null用於替換查詢中使用的?(如Java的PreparedStatement)。

更多信息:http://developer.android.com/reference/android/content/ContentResolver.html

+0

感謝您的幫助 –

相關問題