//pulltorefresh上拉下拉依赖 compile 'com.jwenfeng.pulltorefresh:library:1.0.3' package com.example.myapplication; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import com.google.gson.Gson; import com.jwenfeng.library.pulltorefresh.BaseRefreshListener; import com.jwenfeng.library.pulltorefresh.PullToRefreshLayout; import com.nostra13.universalimageloader.core.ImageLoader; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.URL; import java.util.List; public class MainActivity extends AppCompatActivity { private PullToRefreshLayout pull; private ListView lv; private String path=""; private Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { if(msg.what==0){ JsonRootBean bean= (JsonRootBean) msg.obj; list = bean.getResult().getData(); Log.i("aaa", MainActivity.this.list.toString()); Myad myad=new Myad(); lv.setAdapter(myad); } } }; private List<Data> list; private List<Data> list1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); pull = (PullToRefreshLayout) findViewById(R.id.pull); lv = (ListView) findViewById(R.id.pull_lv); getData(); pull.setRefreshListener(new BaseRefreshListener() { @Override public void refresh() { handler.postDelayed(new Runnable() { @Override public void run() { //在这写上你要刷新的逻辑代码 pull.finishRefresh(); } },1000); } @Override public void loadMore() { handler.postDelayed(new Runnable() { @Override public void run() { //在这写上你要刷新的逻辑代码 pull.finishLoadMore(); } },1000); } }); } class Myad extends BaseAdapter { @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return 0; } @Override public View getView(int i, View view, ViewGroup viewGroup) { He he=null; if(view==null){ view=View.inflate(MainActivity.this,R.layout.item,null); he=new He(); he.img= view.findViewById(R.id.img); he.wenben=view.findViewById(R.id.wenzi); view.setTag(he); }else{ he= (He) view.getTag(); } he.wenben.setText(list.get(i).getTitle()); ImageLoader.getInstance().displayImage(list.get(i).getThumbnail_pic_s(),he.img); return view; } class He{ ImageView img; TextView wenben; } } private void getData() { new Thread(){ @Override public void run() { if(path==null) { String path = "http://v.juhe.cn/toutiao/index?type=top&key=597b4f9dcb50e051fd725a9ec54d6653"; } try { URL url=new URL(path); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); if(connection.getResponseCode()==200){ InputStream stream = connection.getInputStream(); String json=zhuan(stream,"utf-8"); Gson gson = new Gson(); JsonRootBean jsonRootBean = gson.fromJson(json, JsonRootBean.class); Message message=Message.obtain(); message.what=0; message.obj=jsonRootBean; handler.sendMessage(message); } } catch (Exception e) { e.printStackTrace(); } } }.start(); } private String zhuan(InputStream stream, String s) { try { InputStreamReader in=new InputStreamReader(stream,s); BufferedReader re=new BufferedReader(in); String ss=null; StringBuilder builder=new StringBuilder(); while((ss=re.readLine())!=null){ builder.append(ss); } return builder.toString(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } }
//main布局 <com.jwenfeng.library.pulltorefresh.PullToRefreshLayout android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/pull"> <ListView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/pull_lv"></ListView> </com.jwenfeng.library.pulltorefresh.PullToRefreshLayout>
本文介绍了一个基于PullToRefreshLayout实现的上拉加载更多、下拉刷新功能的示例应用。该应用通过PullToRefreshLayout控件实现了流畅的交互体验,并展示了如何通过自定义适配器加载数据和图片。
4937

被折叠的 条评论
为什么被折叠?



