动态列表视图在android中滚动结尾处添加“加载更多项”

时间:2016-07-20 10:05:23

标签: android listview

我是android新手。在我的应用中,我使用的是listview,而在我的listview中,我必须加载26条记录。我决定先加载3条记录;然后当我滚动,接下来的3条记录等时,我想使用listview底部的进度条加载。

完成所有记录后,我需要显示没有"记录和#34;。

有人可以帮帮我吗?

我的代码: -

public class MainActivity extends Activity {

    ListView listView;
    String[] arrayS = new String[]{"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p"};
    View footer;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.actvity);

        listView = (ListView) findViewById(R.id.load);

        final ArrayList<String> list = new ArrayList<String>();

        for (int i = 0; i < 3; i++) {
            list.add(arrayS[i]);
        }

        //Add footer view:-
        footer = ((LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.progress, null, false);
        listView.addFooterView(footer);

        final ArrayAdapter<String> ad = new ArrayAdapter(MainActivity.this, android.R.layout.simple_list_item_1, list);
        listView.setAdapter(ad);


        // Implementing scroll refresh:-

        listView.setOnScrollListener(new AbsListView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(AbsListView absListView, int i) {
            }

            @Override
            public void onScroll(AbsListView absListView, int firstItem, int visibleItemCount, final int totalItems) {

        });
    }
}

2 个答案:

答案 0 :(得分:0)

使用以下逻辑来获取何时调用下一组数据以进行更多加载 -

@Override
public void onScroll(AbsListView view, int firstVisibleItem,
                     int visibleItemCount, int totalItemCount) {

    int lastInScreen = firstVisibleItem + visibleItemCount;
    if ((lastInScreen == totalItemCount) && !(flagForCheckingIfMoreDataAvailable)) {
        // load more
    }
}

答案 1 :(得分:0)

以下是完成此操作的完整代码。

objectsmap (U∩V)