2016-04-23 132 views
0

我想從此函數返回dbManagement.ORIGINATING_ADDRESS的所有值,但它只是給我blockedNumber的最後一個值。我知道它會給最後一個價值,但我怎麼能得到所有的價值。好心幫如何從函數返回所有值

public String selectBlockedNumbers() { 
     Cursor cursor = dbManagement.selectBlockedNumbers(); 
     String blockedNumber = null; 
     cursor.moveToFirst(); 
     for(int i = 0; i < cursor.getCount(); i++) { 
      blockedNumber = cursor.getString(cursor.getColumnIndex(dbManagement.ORIGINATING_ADDRESS)); 
      cursor.moveToNext(); 
     } 

     Toast.makeText(this, blockedNumber, Toast.LENGTH_LONG).show(); 
     return blockedNumber; 

    } 

Cursor cursor = dbManagement.selectBlockedNumbers(); 

功能selectBlockedNumbers()由以下查詢:

cursor = db.rawQuery("SELECT " + ORIGINATING_ADDRESS + " FROM " + TABLE_BLOCK_LIST, null);

回答

0

當for循環運行的最後一次,blockedNumbers將包含最後檢索的數字。所以,而不是返回String,而是返回List<String>。在這種情況下,您的代碼應更改爲

public List<String> selectBlockedNumbers() { 
     Cursor cursor = dbManagement.selectBlockedNumbers(); 
     List<String> blockedNumbers = new ArrayList<String>(); 
     cursor.moveToFirst(); 
     for(int i = 0; i < cursor.getCount(); i++) { 
      String blockedNumber = cursor.getString(cursor.getColumnIndex(dbManagement.ORIGINATING_ADDRESS)); 
      blockedNumbers.add(blockedNumber); 
      cursor.moveToNext(); 
     } 

     Toast.makeText(this, blockedNumber, Toast.LENGTH_LONG).show(); 
     return blockedNumbers;  
    } 
+0

感謝您的幫助。它返回列表但我只需要字符串類型。 –

+0

基本上我想檢索這些blockedNumbers,並需要比較一個字符串 –

+0

你可以請你分享你做比較的代碼嗎?然後,我可以建議你如何修改它來處理返回的'List ' – ishmaelMakitla