打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

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

我有一个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.它应该工作.

来源:https://www.icode9.com/content-4-455251.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
android
安卓开发_浅谈ListView之分页列表
极光接受通知栏系统消息 文件
android listview下拉刷新(listview 分页),数据来源数据库(web)
Android ListView刷新和分页动态加载更多数据的功能实现 | 技术作坊
java怎么读取json格式的数据
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服