listView滑动加载更多
来源:互联网 发布:读书笔记软件下载 编辑:程序博客网 时间:2024/06/05 16:25
package com.bawei.day9rk;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.util.ArrayList;import java.util.List;import com.bawei.day9rk.bean.Data;import com.bawei.day9rk.bean.News;import com.google.gson.Gson;import com.nostra13.universalimageloader.core.ImageLoader;import android.os.AsyncTask;import android.os.Bundle;import android.R.integer;import android.app.Activity;import android.view.Menu;import android.view.View;import android.view.ViewGroup;import android.widget.AbsListView;import android.widget.AbsListView.OnScrollListener;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity {ListView lv;List<News> list;private MyAdapter adapter;int current=1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //找控件 lv= (ListView) findViewById(R.id.lv); //初始化数据源 initData(); list=new ArrayList<News>(); //设置适配器 adapter = new MyAdapter(); //绑定 lv.setAdapter(adapter); //滑动触发的监听 lv.setOnScrollListener(new OnScrollListener() {@Overridepublic void onScrollStateChanged(AbsListView view, int scrollState) {// TODO Auto-generated method stubswitch (scrollState) {case OnScrollListener.SCROLL_STATE_IDLE:if (view.getLastVisiblePosition()==list.size()-1) {current++;initData();//Toast.makeText(MainActivity.this, "current:"+current, 0).show();}break;default:break;}}@Overridepublic void onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount) {// TODO Auto-generated method stub}}); }private void initData() {// TODO Auto-generated method stubnew AsyncTask<String, String, String>() {@Overrideprotected String doInBackground(String... params) {// TODO Auto-generated method stub//解析的方法getData();return null;}@Overrideprotected void onPostExecute(String result) {// TODO Auto-generated method stub//刷新adapter.notifyDataSetChanged();super.onPostExecute(result);}}.execute();}//解析private void getData() {// TODO Auto-generated method stubString path="https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10&page="+current;try {URL url=new URL(path);HttpURLConnection conn=(HttpURLConnection) url.openConnection();conn.setConnectTimeout(5000);conn.setReadTimeout(5000);int code = conn.getResponseCode();if (code==200) {Gson gson=new Gson();Data data = gson.fromJson(new InputStreamReader(conn.getInputStream()), Data.class);//list=data.getNewslist();list.addAll(data.getNewslist());}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}class MyAdapter extends BaseAdapter{@Overridepublic int getCount() {// TODO Auto-generated method stubif (list!=null) {return list.size();}return 0;}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn null;}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn 0;}//优化@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubViewHolder holder;if (convertView==null) {convertView=View.inflate(MainActivity.this, R.layout.item, null);holder=new ViewHolder();holder.tv_title =(TextView) convertView.findViewById(R.id.tv_title);holder.tv_desc =(TextView) convertView.findViewById(R.id.tv_desc);holder.tv_time =(TextView) convertView.findViewById(R.id.tv_time);holder.iv =(ImageView) convertView.findViewById(R.id.iv);convertView.setTag(holder);}else {holder=(ViewHolder) convertView.getTag();}holder.tv_title.setText(list.get(position).getTitle());holder.tv_desc.setText(list.get(position).getDescription());holder.tv_time.setText(list.get(position).getCtime());ImageLoader.getInstance().displayImage(list.get(position).getPicUrl(), holder.iv);return convertView;}} static class ViewHolder{ TextView tv_title,tv_desc,tv_time; ImageView iv; } }
//图片package com.bawei.day9rk.bean;import com.bawei.day9rk.R;import com.nostra13.universalimageloader.core.DisplayImageOptions;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;import android.app.Application;public class Myappction extends Application{@Overridepublic void onCreate() {// TODO Auto-generated method stubDisplayImageOptions options=new DisplayImageOptions.Builder().showImageOnLoading(R.drawable.ic_launcher).displayer(new FadeInBitmapDisplayer(2000)).cacheOnDisk(true).cacheInMemory(true).build();ImageLoaderConfiguration config=new ImageLoaderConfiguration.Builder(this).defaultDisplayImageOptions(options).threadPoolSize(5).build();ImageLoader.getInstance().init(config);super.onCreate();}}//xml<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="10dp" > <LinearLayout android:layout_width="match_parent" android:layout_height="80dp" android:layout_marginLeft="10dp" android:layout_toRightOf="@+id/iv" android:orientation="vertical" > <TextView android:id="@+id/tv_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:text="标题" /> <TextView android:id="@+id/tv_desc" android:layout_width="wrap_content" android:layout_height="wrap_content" android:lines="2" android:text="描述" /> <TextView android:id="@+id/tv_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right" android:singleLine="true" android:text="时间" /> </LinearLayout> <ImageView android:id="@+id/iv" android:layout_width="80dp" android:layout_height="80dp" android:layout_alignParentLeft="true" /></RelativeLayout>
阅读全文
0 0
- listView滑动加载更多
- listview下拉刷新 上拉(滑动分页)加载更多
- listview下拉刷新 上拉(滑动分页)加载更多
- listview下拉刷新 上拉(滑动分页)加载更多
- listview下拉刷新 上拉(滑动分页)加载更多
- listview下拉刷新 上拉(滑动分页)加载更多
- DropDownListView下拉刷新及滑动到底部加载更多ListView
- listview下拉刷新 上拉(滑动分页)加载更多
- listview下拉刷新 上拉(滑动分页)加载更多
- 滑动加载更多数据
- Android ListView加载更多
- listview刷新、加载更多
- ListView加载更多
- listview加载更多
- listView下拉加载更多
- listView的加载更多
- ListView加载更多demo
- listview加载更多
- iOS 偏好设置NSUserDefaults
- EasyDSS开放平台文档设计
- Opencv Mat 类详解以及像素点基本读取方法
- Tensorlayer 安装更新
- HDU 6103 Kirinriki (字符串翻转 尺取法 17多校第六场)
- listView滑动加载更多
- LayoutInflate(布局填充器)的使用
- Zabbix poller processes more than 75% busy”警报问题解决
- Largest Rectangle in a Histogram--(单调队列orDP)
- java 多线程随笔(二)
- 深度学习实践笔记1——BP神经网
- 判断下列关键字序列是否为堆?
- datatables的初始化及刷新
- jzoj5259 线性规划问题 (巧妙设状态的dp)