
我有一个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 – 动态列表视图在滚动结束时添加“加载更多项目”所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)