как вставить данные из адаптера в просмотр списка - PullRequest
1 голос
/ 17 ноября 2011

В моей деятельности у меня один адаптер содержит 25 элементов, и у меня есть один просмотр списка.Я хочу вставить 5 элементов в список и, если я нажму следующую кнопку в своей деятельности, страница перезагрузится со следующими 5 элементами и т. Д.

Ответы [ 3 ]

1 голос
/ 17 ноября 2011

Измените элементы в адаптере, а затем вызовите notifyDataSetChanged () для адаптера.

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

Кроме того, будьте скрупулезны в использовании шаблона ViewHolder.При реализации getView () использование этого шаблона проектирования сэкономит много памяти:

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

0 голосов
/ 17 ноября 2011

Вы должны поддерживать положение массива

Я создал демонстрационный адаптер, который вы можете увидеть

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;
    }

}
0 голосов
/ 17 ноября 2011

Вы не должны добавлять все 25 элементов в адаптер без необходимости. добавить только пять значений;

    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 
    }
...