2013-06-03 1 views
2

헤더 (월)와 매월 이미지가있는 그리드 뷰를 구현하고 있습니다. 기본 어댑터를 구현하려고하는데 작동하지 않는 것 같습니다.StickyGridHeader 예제

GridView stickyGrid = (GridView) findViewById(R.id.show_gridview); 
     GridViewAdapter adapter = new GridViewAdapter(getBaseContext()); 
     stickyGrid.setAdapter(adapter); 

자료 어댑터 구현 모든

public class GridViewAdapter extends BaseAdapter implements 
     StickyGridHeadersBaseAdapter { 

    private LayoutInflater inflater; 

    public GridViewAdapter(Context context) { 
     inflater = LayoutInflater.from(context); 
    } 

    @Override 
    public int getCount() { 
     imageUrls.size(); 
     return 0; 
    } 

    @Override 
    public Object getItem(int position) { 
     return imageUrls.get(position); 
    } 

    @Override 
    public long getItemId(int position) { 
     return position; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     ImageView holder; 

     if (convertView == null) { 
      holder = (ImageView) inflater.inflate(R.layout.item_grid, 
        parent, false); 
     } else { 
      holder = (ImageView) convertView; 
     } 

     imageLoader.displayImage(Util.BASE_URL + imageUrls.get(position), 
       holder, options, new SimpleImageLoadingListener() { 
        @Override 
        public void onLoadingStarted(String imageUri, View view) { 
         spinner.setVisibility(View.VISIBLE); 
        } 

        @Override 
        public void onLoadingFailed(String imageUri, View view, 
          FailReason failReason) { 
         String message = null; 
         switch (failReason.getType()) { 
         case IO_ERROR: 
          message = "Input/Output error"; 
          break; 
         case DECODING_ERROR: 
          message = "Image can't be decoded"; 
          break; 
         case NETWORK_DENIED: 
          message = "Downloads are denied"; 
          break; 
         case OUT_OF_MEMORY: 
          message = "Out Of Memory error"; 
          break; 
         case UNKNOWN: 
          message = "Unknown error"; 
          break; 
         } 
         Toast.makeText(getBaseContext(), message, 
           Toast.LENGTH_SHORT).show(); 
         spinner.setVisibility(View.GONE); 
        } 

        @Override 
        public void onLoadingComplete(String imageUri, 
          View view, Bitmap loadedImage) { 
         spinner.setVisibility(View.GONE); 
        } 
       }); 
     return holder; 
    } 

    @Override 
    public int getCountForHeader(int arg0) { 
     return datesHeader.size(); 

    } 

    @Override 
    public View getHeaderView(int position, View convertView, 
      ViewGroup parent) { 
     TextView holder; 
     if (convertView == null) { 
      holder = (TextView) inflater.inflate(R.layout.date_header, 
        parent, false); 
     } else { 
      holder = (TextView) convertView; 
     } 
     holder.setText(datesHeader.get(position)); 
     return holder; 
    } 

    @Override 
    public int getNumHeaders() { 
     // TODO Auto-generated method stub 
     return 0; 
    } 

} 

첫째, 문제가 그들의 (단순 및 헤더)에 대한의 getView를 실행하지 않습니다. 다음으로 내 머리 속에는 특정 이미지에 대해 헤더를 설정할 수있는 방법이 있습니다. 나는 헤더의 배열 목록을 가지고있다. (몇 달). 이미 4 일을 보냈으므로 아무런 해결책도 찾을 수 없기 때문에 도와주세요.

+2

첫 번째로'getCount()'**는 0을 반환합니다 ** ** 당신은 무엇을 기대합니까? ... GridView는 Adapter에게 "우리는 얼마나 많은 요소를 가지고 있습니까?"라고 묻습니다. 어댑터는 말합니다 : "0"GridView : "알았어, 끝났어 ..." – Selvin

+0

오 하느님. 정말 문제가 됐다는 사실을 유감스럽게 생각합니다. 나타나서 ... 나는 마지막으로 미안하다. – Hasandroid

+0

감사합니다. – Hasandroid

답변

2

그리드 뷰 어댑터의 경우 getcount()가 0입니다.