2011-06-13 31 views
2

一些位置請參考鏈接... http://mytelcoit.com/2010/02/programming-android-create-icon-with-text-using-gridview-and-layout-inflater/在網格視圖中不顯示所有項目,位置0項顯示,而在Android的

此鏈接的代碼運行良好,直到數量有限在getCount()函數中返回,但是當我給ex的大值時。 55,在getCount()返回之前,在模擬器的位置23(即配置文件24)不顯示。在它的位置上,配置文件0顯示。只要嘗試運行代碼,就會讓我更好。 。只需在上面的鏈接代碼中替換getCount()中的5代替55.然後運行並看看.. 如果你有任何解決方案..Plzzz讓我知道,我希望你能幫助我。

回答

1

每次框架重新使用視圖(即convertView對象提供給getView()方法不爲空),您必須找到適當的視圖並設置它們的屬性。

在引用鏈接下的代碼示例中,作者僅在創建時才爲視圖設置值,因此每次框架重新使用視圖時,它都具有相同的屬性。因此getView()方法應該被實現爲這樣的:

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View v; 
     if(convertView==null){ 
      LayoutInflater li = getLayoutInflater(); 
      v = li.inflate(R.layout.icon, null); 
     } 
     else 
     { 
      v = convertView; 
     } 
     TextView tv = (TextView)v.findViewById(R.id.icon_text); 
     tv.setText("Profile "+ position); 
     ImageView iv = (ImageView)v.findViewById(R.id.icon_image); 
     iv.setImageResource(R.drawable.icon); 
     return v; 
    } 

可以通過應用視圖保持器圖案優化進一步getView()方法。 請參閱Romain Guy's和Adam Powell的演示文稿The world of ListView,因爲它解釋了一些連接到擴展AdapterView類的小部件的其他捕獲。

相關問題