2012-06-11 51 views
0

我有一個自定義的GridView顯示運算符的列表及其圖標和provider.my問題是Gridview只顯示有限的提供者(僅12)。但我有超過16個值在滾動GridView時,剩餘值在Gridview中重複顯示。Gridview將限制值顯示

我的源代碼是在此

public class ImageAdapter extends BaseAdapter { 

    public int getCount() { 
     return providerlist1.size(); 
    } 

    public Object getItem(int position) { 
     return null; 
    } 

    public long getItemId(int position) { 
     return 0; 
    } 

    // create a new ImageView for each item referenced by the Adapter 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View v; 
     ImageView imageView; 
     if (convertView == null) { 
      LayoutInflater layoutInflater = getLayoutInflater(); 
      v = layoutInflater.inflate(R.layout.icon_with_text, null); 
      TextView txt = (TextView) v.findViewById(R.id.icon_text); 
      txt.invalidate(); 
      txt.setTypeface(localTypeface1); 
      Collections.sort(providerlist1); 
      Log.v("COLLECTIONS", ""+providerlist1); 
      txt.setText("" + providerlist1.toArray()[position]); 
      String string = (String) txt.getText(); 
      icon = string.toLowerCase(); 
      System.out.println(icon); 
      int resid = getResources().getIdentifier("" + icon, "drawable", 
        "com.digient.yeldi.app"); 
      imageView = (ImageView) v.findViewById(R.id.icon_image); 
      imageView.setImageResource(resid); 

     } else { 
      v = convertView; 
     } 

     return v; 

    } 

} 

providerlist1是其中正在具有多於16個運營商值的ArrayList。

+0

完全發佈您的適配器 –

+0

我的想法是Gridview沒有在Getview方法中自動刷新。 – Thamilvanan

回答

0

使用下面的代碼,可能會幫助你。

public class ImageAdapter extends BaseAdapter { 

    LayoutInflater layoutInflater; 
    Context ctx; 
    public ImageAdapter(Context context) { 
     // TODO Auto-generated constructor stub 
     layoutInflater=LayoutInflater.from(context); 
     this.ctx=context; 
    } 

    public int getCount() { 
     return providerlist1.size(); 
    } 

    public Object getItem(int position) { 
     return null; 
    } 

    public long getItemId(int position) { 
     return 0; 
    } 

    // create a new ImageView for each item referenced by the Adapter 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View v; 
     ImageView imageView; 
     if (convertView == null) { 
      v = layoutInflater.inflate(R.layout.icon_with_text, null); 
     } else { 
      v = convertView; 
     } 

     TextView txt = (TextView) v.findViewById(R.id.icon_text); 
     txt.invalidate(); 
     txt.setTypeface(localTypeface1); 
     Collections.sort(providerlist1); 
     Log.v("COLLECTIONS", ""+providerlist1); 
     txt.setText("" + providerlist1.toArray()[position]); 
     String string = (String) txt.getText(); 
     icon = string.toLowerCase(); 
     System.out.println(icon); 
     int resid = getResources().getIdentifier("" + icon, "drawable", "com.digient.yeldi.app"); 
     imageView = (ImageView) v.findViewById(R.id.icon_image); 
     imageView.setImageResource(resid); 

     return v; 

    } 

} 
+0

謝謝,現在工作。 – Thamilvanan