2012-10-12 3 views
0

사용자 지정 어댑터와 함께 gridview를 사용하고 있습니다. 그리드의 각 항목에는 이미지보기와 체크 상자가 있지만 마지막 항목을 버튼으로 원합니다. Android - Gridview의 마지막 항목을 다른 방법으로 만드는 방법은 무엇입니까?

@Override 
    public int getCount() { 
     return thumbUrls.size()+1; 
    } 

내가의 getView 한 여분의 시간이라고 할 getcount에서 +1을 반환

여기 내 코드입니다. 의 getView에서

: -

@Override 
    public View getView(final int position, View convertView, ViewGroup parent) { 
     View row = convertView; 
     ViewHolder holder; 
     if(row==null) 
     { 
      row = layoutInflater.inflate(R.layout.griditem, parent, false); 
      holder = new ViewHolder(); 
      holder.mainImage = (ImageView)row.findViewById(R.id.itemgrid); 
      holder.checkBox = (CheckBox)row.findViewById(R.id.itemselected); 
      row.setTag(holder); 
     } 
     else { 
      holder = (ViewHolder)row.getTag(); 
     } 
     if (position==(thumbUrls.size()+1)) { //this is just to show what i am trying to do. 
     Button button = new Button(context); 
     return button; 
     } 
     else 
     { 
      setImageSize(holder.mainImage); 

      holder.mainImage.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        intent.putExtra("position", position); 
        intent.putStringArrayListExtra("MainUrls", mainUrls); 
        intent.putStringArrayListExtra("Thumbnails", thumbUrls); 
        context.startActivity(intent); 
       } 
      }); 

      holder.checkBox.setOnCheckedChangeListener(null); 
      holder.checkBox.setTag(position); 

      holder.checkBox.setChecked(positions.contains(thumbUrls.get(position))); 
      holder.checkBox.setOnCheckedChangeListener(this); 

      UrlImageViewHelper.setUrlDrawable(holder.mainImage, thumbUrls.get(position), R.drawable.extras_load); 
     } 
     return row; 

    } 
+1

버튼을 반환하면 다음 getView의 태그에 ViewHolder가 없으므로이 뷰에 액세스 할 때 오류가 발생합니다. – njzk2

답변

1

대신

if (position==(thumbUrls.size()+1)) { //this is just to show what i am trying to do. 
    Button button = new Button(context); 
    return button; 
    } 

사용

if (position == thumbUrls.size()) { 
    Button button = new Button(context); 
    return button; 
    } 

당신은 또한 적절한 LayoutParameter에 대한 설정해야합니다 0에서 getView 시작의 첫 번째 매개 변수 positionButton.

+0

내가 어리석은 오류를 일으켰습니다. Rajesh에게 감사드립니다. 정말 감사합니다. – Varundroid

+0

이상한 문제가 있습니다. 모든 것이 잘 작동하지만 때로는 버튼이 표시되고 때로는 표시되지 않습니다. 왜 그래야만하지? 나는 새로운 질문으로 그것을 넣었다. 한번보세요 : - http://stackoverflow.com/questions/12888169/android-different-items-in-gridview-not-showing-up – Varundroid

관련 문제