2012-11-01 1 views
0

목록보기에 기본 어댑터를 사용하고 스크롤하는 동안 positon이 변경됩니다.이 방법을 끝내려면 그리고 이것은 제베이스 어댑터 클래스였습니다. 높은 게재 순위를,안드로이드에서 스크롤하는 동안 listview의 기본 위치에 대한 방법

변화를 스크롤하는 동안

Hello, 

내가 목록보기에 대한 기본 어댑터를 사용합니다., 이상이, 와서이 내 자료 어댑터 클래스했다 방법에 대해 설명합니다.

이 문제를 극복하도록 도와주세요.

답변

0

당신이 목록보기 방법 setOnScrollListener

을 사용 할 수 있습니다 당신은 당신의 코드에서 사용할 수 position.now의 firstvisible 위치, lastvisible 위치와 TOTALNUMBER를 얻을 수 있습니다 스크롤 할 때마다.

listview.setOnScrollListener(new OnScrollListener() { 
     @Override 
     public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { 
      //get the showed item num, and if its equal to total, you can hide the view 
      //get a reference to your viewid 
      //viewid.setVisibility(View.GONE); 
     } 
     @Override 
     public void onScrollStateChanged(AbsListView view, int scrollState) { 
     } 
    }); 

편집 : 당신의 getView의 방법은 어댑터 내부가 당신이 아래의 코드를 지정할 수 있습니다

holder.chkselect = (CheckBox) convertView 
       .findViewById(R.id.txtselect); 
    holder.chkselect.setTag(position); 
    holder.chkselect.setOnCheckedChangeListener(new OnCheckedChangeListener() {@Override 
public void onCheckedChanged(CompoundButton buttonView, 
     boolean isChecked) { 
    if (isChecked) { 

     int position = Integer.parseInt(buttonView.getTag() 
       .toString()); 
     OrderDetail.acceptposition.add(String 
       .valueOf(position)); 
    } else { 
     int position = Integer.parseInt(buttonView.getTag() 
       .toString()); 

     if (OrderDetail.acceptposition.contains(String 
       .valueOf(position))) { 
      OrderDetail.acceptposition.remove(String 
        .valueOf(position)); 
     } 
    } 

} 

을});

여기 ArralyList acceptposition에 체크 한 모든 위치가 있습니다. 시도 해봐.

+0

확인란을 선택하면 하나의 위치가 표시되고 동일한 체크 박스를 스크롤하고 선택 해제하면 다른 위치가 표시되지만 동일한 위치가 필요합니다 .. 어떻게해야합니까? – Vishnu

+0

내 대답을 편집했습니다. 시도 해봐. –

관련 문제