android– 动态列表视图在滚动结束时添加“加载更多项目”

android– 动态列表视图在滚动结束时添加“加载更多项目”,第1张

概述我有一个listview,它是由Json从sqlite数据库中获取数据.我想把它变成动态列表视图,在滚动结束时,在加载更多项目并将它们添加到适配器(例如每次10个项目)时,列表的页脚中会出现“加载更多项目”.我在实现此功能时遇到问题.请帮帮我.谢谢.publicclassAllProductsActivityexten

我有一个ListvIEw,它是由Json从sqlite数据库中获取数据.

我想把它变成动态列表视图,在滚动结束时,在加载更多项目并将它们添加到适配器(例如每次10个项目)时,列表的页脚中会出现“加载更多项目”.我在实现此功能时遇到问题.请帮帮我.谢谢.

public class AllProductsActivity extends Activity {... defining variables...;@OverrIDepublic voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.main);    new LoadAllProducts().execute();}class LoadAllProducts extends AsyncTask<String, String, String> {    @OverrIDe    protected voID onPreExecute() {        super.onPreExecute();        ... progress dialog...    }    protected String doInBackground(String... args) {        countryList = new ArrayList<Country>();        List<nameValuePair> params = new ArrayList<nameValuePair>();        JsONObject Json = jParser.makehttpRequest(url_all_products, "GET", params);        Log.d("All Products: ", Json.toString());        try {            // Checking for SUCCESS TAG            int success = Json.getInt(TAG_SUCCESS);            if (success == 1) {                // products found                // Getting Array of Products                products = Json.getJsONArray(TAG_PRODUCTS);                // looPing through All Products                for (int i = 0; i < products.length(); i++) {                    JsONObject c = products.getJsONObject(i);                    // Storing each Json item in variable                    String ID = c.getString(TAG_PID);                    String name = c.getString(TAG_name);                    String description = c.getString(TAG_DESCRIPTION);                    String due_date = c.getString(TAG_DUE_DATE);                    String staff = c.getString(TAG_STAFF);                    String status = c.getString(TAG_STATUS);                    country = new Country(ID,name,description,                            due_date, staff, status);                    countryList.add(country);                }            }        } catch (JsONException e) {            e.printstacktrace();        }        return null;    }    protected voID onPostExecute(String file_url) {        pDialog.dismiss();        runOnUiThread(new Runnable() {            public voID run() {                displayListVIEw();            }        });    }}private voID displayListVIEw() {    dataAdapter = new MyCustomAdapter(this,            R.layout.country_info, countryList);    ListVIEw ListVIEw = (ListVIEw) findVIEwByID(R.ID.ListVIEw1);    ListVIEw.setAdapter(dataAdapter);}private class MyCustomAdapter extends ArrayAdapter<Country> {    ... blah blah blah ...    @OverrIDe    public VIEw getVIEw(int position, VIEw convertVIEw, VIEwGroup parent) {        VIEwHolder holder = null;        Log.v("ConvertVIEw", String.valueOf(position));        if (convertVIEw == null) {        ... blah blah blah ...        }        return convertVIEw;    }}}

解决方法:

您尝试以下代码

List.setonScrollListener(new OnScrollListener() {        public voID onScrollStateChanged(AbsListVIEw vIEw, int scrollState) {        }        public voID onScroll(AbsListVIEw vIEw, int firstVisibleItem,                int visibleItemCount, int totalitemCount) {            if(firstVisibleItem+visibleItemCount == totalitemCount && totalitemCount!=0)            {                if(flag_loading == false)                {                    flag_loading = true;                    additems();                }            }        }    });

在additem()中将接下来的10个项添加到数组列表中,并将flag_loading设置为false.并调用notifydatasetchanged.它应该工作.

总结

以上是内存溢出为你收集整理的android – 动态列表视图在滚动结束时添加“加载更多项目”全部内容,希望文章能够帮你解决android – 动态列表视图在滚动结束时添加“加载更多项目”所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1103857.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存