2015-01-01 26 views
1

我想在下面的代碼中顯示Logcat中的數組大小,但沒有顯示任何東西。 有什麼不對? 有人可以幫忙嗎?ArrayList大小不在logcat中

@Override 
protected Topic[] doInBackground(final Object... params) { 
    try { 
     final List<Topic> topics = new ArrayList<Topic>(); 
     int page = 0; 
     int maxPage = 10; 
     while (page < maxPage) { 
      final String url = search.toURL(); 
      final byte[] data = Downloader.download(url); 
      if (data != null) { 
       final ForumPage fp = Parser.parseForumPage(data); 
       page = fp.getPage(); 
       maxPage = fp.getMaxPage(); 
       for (final Topic t : fp.getTopics()) { 
        final String v = getVersion(t); 
        if (v != null && Util.compareVersions(v, minVersion) > 0){ 
         topics.add(t); 
        } 
        System.out.println("SIZE: " + topics.size()); 
       } 
       search.setStart(fp.getNextPageStart()); 
      } 
     } 
     return topics.toArray(new Topic[topics.size()]); 

    } catch (final Exception e) { 
     Log.e(Constants.LOG, e.getMessage(), e); 
    } 
    return null; 
} 
+0

已經看過這個嗎? http://stackoverflow.com/questions/2364811/how-do-i-write-outputs-to-the-log-in-android – drieschr

+0

嘗試使用String.valueOf(topics.size())將其轉換爲字符串, );' – Swap

+0

@Swap 不起作用,代碼已更新。 – Bjorn

回答

2

您的Log語句不在While循環中。一個原因可能是,在while循環中有一些異常,所以while循環之外的代碼沒有被調用。

嘗試在while循環內添加log語句,看看它是否有效。通過這種方式,您可以確認它是否是while循環或日誌語句中的問題。

+0

Thx Prem,看着這個.. – Bjorn

+0

我不認爲這可能是問題。 –

+0

@sufiyan,謝謝你的建議。但這應該是問題,因爲Logcat語法不正確。所以我們看不到的原因只是它沒有被調用。 – Prem

1

嘗試這樣的:

Log.w("Size: ", "The size "+topics.size()); 

另外檢查是否到達代碼上面的行。我的意思是如果在它之前拋出異常,那麼它將進入catch塊。