刚学Android求大神解答下 ListView分页加载的问题
来源:互联网 发布:淘宝商家佣金怎么算 编辑:程序博客网 时间:2024/05/16 18:23
最近去读取新浪的公共接口想用到上拉加载更多
String url = "https://api.weibo.com/2/statuses/public_timeline.json?access_token=key&count=";就这个url测试,后面的count是传的显示条数。
我现在写法是加载更多功能可以实现,但是这样是重新加载了,条数是增加了,不过界面会跳到listView的顶部上去,而不是接着在底部显示加载更多后的。
activity里面代码是这样
Handler handler = new Handler() {
public void handleMessage(Message msg) {
data = (String) msg.obj;
adapter = new WeiBoAdapter(WeiBoActivity.this, list);
mListView.setAdapter(adapter);
Read.listview(data, list);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.list_activity);
list = new ArrayList<WeiBoInfo>();
mListView = (XListView) findViewById(R.id.list);
mListView.setPullLoadEnable(true);
mListView.setXListViewListener(this);
mHandler = new Handler();
Get.doGet(url + count, handler);// xUtils
}
@Override
public void onLoadMore() {
// TODO Auto-generated method stub
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
count += 3;
Get.doGet(url + count, handler);
adapter.notifyDataSetChanged();
onLoad();
}
}, 2000);
}
adapter的代码
public class WeiBoAdapter extends BaseAdapter {
List<WeiBoInfo> list;
Context context;
LayoutInflater inflater;
WeiBoInfo info = new WeiBoInfo();
public WeiBoAdapter(Context context, List<WeiBoInfo> list) {
this.context = context;
this.list = list;
inflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return list == null ? 0 : list.size();
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View view, ViewGroup arg2) {
// TODO Auto-generated method stub
if (view == null) {
WeiBoHolder holder = new WeiBoHolder();
view = inflater.inflate(R.layout.item_layout, null);
holder.wbicon = (ImageView) view.findViewById(R.id.wbicon);
holder.wbuser = (TextView) view.findViewById(R.id.wbuser);
holder.wbtext = (TextView) view.findViewById(R.id.wbtext);
holder.time = (TextView) view.findViewById(R.id.time);
view.setTag(holder);
}
WeiBoHolder holder = (WeiBoHolder) view.getTag();
info = list.get(position);
BitmapUtils bitmapUtils = new BitmapUtils(context);
bitmapUtils.display(holder.wbicon, info.getImgUrl());
holder.wbuser.setText(info.getUserName());
holder.wbtext.setText(info.getText());
holder.time.setText(info.getTime());
return view;
}
class WeiBoHolder {
ImageView wbicon = null;
TextView wbtext = null;
TextView wbuser = null;
TextView time = null;
}
json解析的代码
public class Read {
public static void listview(String data, List<WeiBoInfo> list) {
String icon = null;
WeiBoInfo info = new WeiBoInfo();
try {
JSONObject josnobject = new JSONObject(data);
JSONArray jsonArrays = josnobject.getJSONArray("statuses");
for (int i = 0; i < jsonArrays.length(); i++) {
info = new WeiBoInfo();
JSONObject object = jsonArrays.getJSONObject(i);
JSONObject user = object.getJSONObject("user");
icon = user.optString("profile_image_url");
info.setImgUrl(icon);
info.setTime(object.optString("created_at"));
info.setUserName(user.optString("name"));
info.setText(object.optString("text"));
list.add(info);
}
} catch (Exception e) {
e.printStackTrace();
}
}
String url = "https://api.weibo.com/2/statuses/public_timeline.json?access_token=key&count=";就这个url测试,后面的count是传的显示条数。
我现在写法是加载更多功能可以实现,但是这样是重新加载了,条数是增加了,不过界面会跳到listView的顶部上去,而不是接着在底部显示加载更多后的。
activity里面代码是这样
Handler handler = new Handler() {
public void handleMessage(Message msg) {
data = (String) msg.obj;
adapter = new WeiBoAdapter(WeiBoActivity.this, list);
mListView.setAdapter(adapter);
Read.listview(data, list);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.list_activity);
list = new ArrayList<WeiBoInfo>();
mListView = (XListView) findViewById(R.id.list);
mListView.setPullLoadEnable(true);
mListView.setXListViewListener(this);
mHandler = new Handler();
Get.doGet(url + count, handler);// xUtils
}
@Override
public void onLoadMore() {
// TODO Auto-generated method stub
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
count += 3;
Get.doGet(url + count, handler);
adapter.notifyDataSetChanged();
onLoad();
}
}, 2000);
}
adapter的代码
public class WeiBoAdapter extends BaseAdapter {
List<WeiBoInfo> list;
Context context;
LayoutInflater inflater;
WeiBoInfo info = new WeiBoInfo();
public WeiBoAdapter(Context context, List<WeiBoInfo> list) {
this.context = context;
this.list = list;
inflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return list == null ? 0 : list.size();
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View view, ViewGroup arg2) {
// TODO Auto-generated method stub
if (view == null) {
WeiBoHolder holder = new WeiBoHolder();
view = inflater.inflate(R.layout.item_layout, null);
holder.wbicon = (ImageView) view.findViewById(R.id.wbicon);
holder.wbuser = (TextView) view.findViewById(R.id.wbuser);
holder.wbtext = (TextView) view.findViewById(R.id.wbtext);
holder.time = (TextView) view.findViewById(R.id.time);
view.setTag(holder);
}
WeiBoHolder holder = (WeiBoHolder) view.getTag();
info = list.get(position);
BitmapUtils bitmapUtils = new BitmapUtils(context);
bitmapUtils.display(holder.wbicon, info.getImgUrl());
holder.wbuser.setText(info.getUserName());
holder.wbtext.setText(info.getText());
holder.time.setText(info.getTime());
return view;
}
class WeiBoHolder {
ImageView wbicon = null;
TextView wbtext = null;
TextView wbuser = null;
TextView time = null;
}
json解析的代码
public class Read {
public static void listview(String data, List<WeiBoInfo> list) {
String icon = null;
WeiBoInfo info = new WeiBoInfo();
try {
JSONObject josnobject = new JSONObject(data);
JSONArray jsonArrays = josnobject.getJSONArray("statuses");
for (int i = 0; i < jsonArrays.length(); i++) {
info = new WeiBoInfo();
JSONObject object = jsonArrays.getJSONObject(i);
JSONObject user = object.getJSONObject("user");
icon = user.optString("profile_image_url");
info.setImgUrl(icon);
info.setTime(object.optString("created_at"));
info.setUserName(user.optString("name"));
info.setText(object.optString("text"));
list.add(info);
}
} catch (Exception e) {
e.printStackTrace();
}
}
0 0
- 刚学Android求大神解答下 ListView分页加载的问题
- 刚学 RMQ 求大神指点
- android 更改铃声遇到问题,求大神解答
- android videoview播放rtsp问题 求大神解答
- android网络传输问题..跪求大神解答
- Cygwin下编译包含C的Android源码,出现错误,求大神解答。
- 关于使用二进制流上传的问题,求大神解答
- 关于使用二进制流上传的问题,求大神解答
- 关于使用二进制流上传的问题,求大神解答
- ListView的分页加载问题
- android listview的分页加载
- 刚学的类与对象的思想(不知道对不对,求大神指导)
- SQL SERVER2008超时问题,求大神解答
- ListView嵌套ListView问题,求大神
- listview分页加载问题
- listview分页加载问题
- Arcgis for Android加载tpk文件遇到的错误,求大神指导下。
- Android ListView 分页加载
- python按行读取文件 去掉换行符"\n" (查眼力,比较文档的不同)
- 有关使用Provisioning Profile遇到的问题
- 线段树实现
- 建立通讯录的程序(用字典)
- 为什么一个简单的网页程序,打开后一直在刷新???
- 刚学Android求大神解答下 ListView分页加载的问题
- Celery源码分析(四)--------Blueprint各组件start流程
- vfork和exit简单介绍
- Hello World 2017
- 54. Spiral Matrix
- 二叉树操作 C++实现
- 初试laravel-搭建环境篇
- React Native和Android整合详解
- leetcode oj java 152. Maximum Product Subarray