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>


原创粉丝点击