2011-11-17 14 views

답변

1

어댑터의 항목을 변경 한 다음 어댑터에서 notifyDataSetChanged()를 호출하십시오.

adapter.clear(); 
adapter.addAll(nextFiveElements); 
adapter.notifyDataSetChanged(); 

또한 ViewHolder 패턴을 사용할 때주의해야합니다. 의 getView()를 구현하는 경우,이 디자인 패턴을 활용하여 많은 메모리를 저장합니다 :

http://www.screaming-penguin.com/node/7767

0

당신이 불필요 어댑터에 25 개 항목을 추가하지 않아야합니다. 5 개의 값만 추가하십시오.

static int pageNo. = 0 ; 
    final int pageSize = 5; 
    btn.onClick() 
    { 
    pageNo.+=; 
    for(int i = pageNo. ;i<pageN0. + pageSize;i++) 
    { 
    adapter.add(*i'th value*); 
    //modify syntext as per need 
    } 
0

당신은 당신이 볼 수

내가 데모 어댑터를 생성 한 배열의 위치를 ​​유지해야

private static final int NO_OF_ITEMS_IN_PAGE = 5; 
pivate static int currentPageNo = 0; 

public class MyAdapter extends BaseAdapter { 

    ArrayList<String> arrNotes; 
    LayoutInflater inflater; 
    public MyAdapter(Context c, ArrayList<String> arrNotes) { 
     this.arrNotes = arrNotes; 
     inflater = ((Activity) c).getLayoutInflater(); 
    } 

    @Override 
    public int getCount() { 
     return NO_OF_ITEMS_IN_PAGE; 
    } 

    @Override 
    public Object getItem(int position) { 
     int actualPosition = currentPageNo * NO_OF_ITEMS_IN_PAGE + position; 
     return arrTodaysMedicines.get(actualPosition); 
    } 

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

    @Override 
    public View getView(int position, View convertView, ViewGroup arg2) { 
     int actualPosition = currentPageNo * NO_OF_ITEMS_IN_PAGE + position; 
     String strNote = arrNotes.get(actualPosition); 
     if(convertView == null) { 
      convertView = inflater.inflate(R.layout.note_list, null); 
     } 
     TextView tvTitle = 
      (TextView) convertView.findViewById(R.id.tvTitle); 

     tvTitle.setText(strNote); 
     return convertView; 
    } 

} 
관련 문제