0

だから、ハックバージョンのエンドレスアダプターを書いていますが、データの膨大なリストを渡したとしても、特定の位置またはカウントの後にデータの読み込みを停止できるかどうかを確認したいと思います。

私が意味したのはこれです:

public View getView(final int position, View convertView, ViewGroup parent) {
        View v = convertView;
        if (position(count) < 25)
               {
                       load data into the layout.
        }
           return convertView;
}

現在、そのようなことをしようとすると、null ポインター例外が発生します。

4

1 に答える 1

1

getCount()で表示するビューの数を指定し、より多くのビューを表示したい場合はこれを増やす必要があります。このようなものはおそらくうまくいくでしょう(注:私はこれをテストしていません)

private class MyAdapter extends BaseAdapter {
    private int currentMax;
    private ArrayList<MyType> items;

    public MyAdapter(int max, ArrayList<MyType> items){
        currentMax = max;
        this.items = items;
    }

    public void showMore(int howMany){
        currentMax += howMany;
    }

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

    /* snip (getview etc.) */
}

そして、使用して増加する

MyAdapter adapter = new MyAdapter(25, items);
getListView().setAdapter(adapter);

/* you now want to show more */

// Increase limit
adapter.showMore(10);
// Let the adapter know something's chagned
adapter.notifyDataSetChanged();
于 2012-09-18T17:51:58.183 に答える