Gribview分页加载数据出错

原创 2017年01月02日 22:23:57
重复加载,加载完最后一条数据应该给 "没有更多数据了....";但运行程序,确是加载完最后一条数据之后再次从头开始加载数据


public class ClassActivity extends Activity implements OnClickListener {
private GridView gv;
private ImageView imageView;
private String classid;
private int count=1;
List<Map<String, Object>> lists = new ArrayList<Map<String, Object>>();
private boolean is_divpage; 
private ClassTypeAdapter adapter;
String url="http://192.168.11.2:8080/class-activity-img-type.html?pageLines=4&classId="+Class_ID.getClass_ID()+"&pageNo=";


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



gv=(GridView) findViewById(R.id.gridView1);
imageView=(ImageView) findViewById(R.id.imageView1);
adapter=new ClassTypeAdapter(this);


new DownloadTask().execute(url,Integer.toString(count));

btnActivicon.setOnClickListener(this);
btnIntro.setOnClickListener(this);
btnCulture.setOnClickListener(this);
btnWork.setOnClickListener(this);
imageView.setOnClickListener(this);


gv.setOnScrollListener(new OnScrollListener() {

@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// TODO Auto-generated method stub
if(is_divpage && scrollState==OnScrollListener.SCROLL_STATE_IDLE){
Toast.makeText(ClassActivity.this, "获取数据", 1).show();
new DownloadTask().execute(url,Integer.toString(count));
}
}

@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// TODO Auto-generated method stub
is_divpage = (visibleItemCount + firstVisibleItem == totalItemCount);
}
});

gv.setOnItemClickListener(new OnItemClickListener() {


@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
GridView gridView=(GridView) parent;
HashMap<String, String> map = (HashMap<String, String>) 
gridView.getItemAtPosition(position);
String type=map.get("type");
Intent intent_A=new Intent(ClassActivity.this,ClassView.class);
intent_A.putExtra("ClassImgType", type);
startActivity(intent_A);
}
});
}

class DownloadTask extends AsyncTask<String, Void, List<Map<String, Object>>> {


@Override
protected List<Map<String, Object>> doInBackground(String... params) {
// TODO Auto-generated method stub

List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
HashMap<String, Object> map;
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(params[0] + params[1]);
try {
HttpResponse response = client.execute(get);
if (response.getStatusLine().getStatusCode() == 200) {
System.out.println("联网成功");
String jsonData = EntityUtils.toString(response.getEntity(), "UTF-8");
try {
JSONArray jsonArray = new JSONArray(jsonData);
if (!jsonArray.isNull(0)) {
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject object = jsonArray.getJSONObject(i);

String type = object.getString("type");
String title=object.getString("title");
String img = object.getString("indexImg");
String photo = object.getString("img");
String date =object.getString("operationTime");
map = new HashMap<String, Object>();
map.put("type", type);
map.put("title", title);
map.put("indexImg", img);
map.put("img", photo);
map.put("operationTime", date);
list.add(map);
}

return list;
}

catch (JSONException e) {
// TODO Auto-generated catch block
}

}
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("---1--->" + list.size());
return list;
}

@Override
protected void onPostExecute(List<Map<String, Object>> result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
if (result.size() > 0) {
lists.addAll(result);
adapter.setData(lists);
if (count == 1) {
gv.setAdapter(adapter);
}
adapter.notifyDataSetChanged();
count++;
} else {
Toast.makeText(getApplicationContext(), "没有更多数据了....", 0).show();
}
}

@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
}

}

Extjs Grid 加载数据.分页。传值,

(function(){ //加载参数 var operLog =function loadOpt(){ var obj = {}; var userName=""; var startTime=""...
  • zhuixunhebe1
  • zhuixunhebe1
  • 2015年07月24日 10:03
  • 562

ViewPager分页加载数据

前言项目中我们可能会加载列表数据,点击列表进入图片浏览,一般情况就是朋友圈动态,点击九宫格图片,进入大图预览页面,但是如果假设我们产品经理要求将列表图片进行ViewPager左右滑动的话,那么我们就得...
  • GD_W001
  • GD_W001
  • 2017年08月13日 20:07
  • 384

一次性加载数据,前端分页

在项目中,前端显示数据的时候,很多地方需要用到分页,通常有两种方式: 一:点击页码的时候,ajax请求后台服务器得到每一页数据,然后在前台进行显示 二:在页面加载,或者其他事件中,一次性将数据加载...
  • vili_sky
  • vili_sky
  • 2017年06月12日 17:39
  • 1776

easyui下的datagrid后台数据加载和分页

Datagrid的创建需要做以下几件事情,   第一步,我们需要引入以下几个个包,少一个都不可以,否则你会发现你无论做的再怎么对结果都会出错,       第二步,引入了这些包之后,我们需...
  • m0_37560267
  • m0_37560267
  • 2017年04月27日 10:08
  • 1743

用Extjs实现分页自动加载数据的Ajax实现

 用Extjs实现分页自动加载数据的Ajax实现2008-04-23 19:20需要用到的外部js文件为prototype.js,和extjs官方的ext-base.js,ext-all.js,ext...
  • yangzhijun_cau
  • yangzhijun_cau
  • 2008年09月03日 10:19
  • 2838

jqGrid 滚动加载 或者点击分页加载两种方式

分页的使用场景:当需要展示的字段太多,记录的条数太多的情况下,如果采用一次性加载全部的记录,会导致加载页面缓慢,响应速度慢, 影响系统的流程程度,故所以采用分页的方法加载数据是十分必要的 步骤如下...
  • shen19920619
  • shen19920619
  • 2017年06月16日 10:45
  • 286

android 下拉分页,重复数据问题???

现在就是我在后台写了一个分页语句,查的是第1到第10为第一页,如果我新加一个,第10就变成第11个了,安卓现在不是下拉分页嘛,现在如果看的是第一页的数据,如果这时候新加一个数据,就把第10变成第11,...
  • laoqiao3277
  • laoqiao3277
  • 2017年01月02日 13:49
  • 288

jquery ashx实现.net无刷新分页

$(function() { var pageIndex = 0; //页面索引初始值 var pageSize = 10; //每页显示条数初始化,...
  • handsometone1982
  • handsometone1982
  • 2012年07月19日 12:32
  • 2266

Android- 分页加载显示数据(上拉加载,下拉刷新)

1. 自定义布局 pull_recycle_layout.xml
  • jslhl
  • jslhl
  • 2017年06月15日 20:53
  • 1359

分页加载数据

效果图: 代码实现如下: 1、main.xml
  • caihongshijie6
  • caihongshijie6
  • 2013年09月23日 18:14
  • 1335
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Gribview分页加载数据出错
举报原因:
原因补充:

(最多只允许输入30个字)