2013-03-12 28 views
0

我想顯示在一個像80個項目的列表中,但在10次測試後,應用程序停止並且logcat顯示ArrayIndexOutOfBoundsException。如何在android中製作更大的數組列表?

我該如何讓我的列表變得更大?

我的代碼:

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.galerie_galerie); 

     rowItems = new ArrayList<RowItem>(); 
     for (int i = 0; i < titles.length; i++) { 
      RowItem item = new RowItem(images[i], titles[i], descriptions[i]); 
      rowItems.add(item); 
     } 

     listView = (ListView) findViewById(R.id.list); 
     CustomListViewAdapter adapter = new CustomListViewAdapter(this, 
       R.layout.list_item, rowItems); 
     listView.setAdapter(adapter); 
     listView.setOnItemClickListener(this); 
    } 

回答

3

你得到這個錯誤,因爲無論你image S或descriptions陣列並不像你titles陣列一樣大。

例如,如果:

  • titles陣列有10個元素
  • images陣列有10個元素
  • description有9個元素

當您嘗試訪問該您的for循環中第10個元素,您從標題和圖像中提取第10個元素,但描述中沒有那麼多元素,因此您可以這樣做得到一個ArrayIndexOutOfBoundsException

你如何避免這種情況將完全取決於你的數據和你想要的結果。如果您的數據支持每個標題的圖像和說明,那麼您可能在初始化數據時犯了一個錯誤。這可能是一個簡單的解決辦法。

如果您沒有支持每個標題的圖片和/或說明的數據,您應該在for循環內檢查是否存在可用於標題的圖像或說明。如果沒有(你正在檢查的當前索引通過數組的長度),那麼你可以把一個佔位符放入ArrayList。如果你這樣做,記得在你實際使用它的時候處理它。

+0

或者他的'CustomListViewAdapter'可能有問題! – 2013-03-12 19:05:09

+0

@ user2152480很高興聽到它! – Michael 2013-03-13 22:02:33

相關問題