PullToFreshListView
来源:互联网 发布:linux terminal 命令 编辑:程序博客网 时间:2024/06/06 03:40
加依赖
视图:
<com.handmark.pulltorefresh.library.PullToRefreshListView android:id="@+id/pull_refresh_list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:cacheColorHint="#00000000" android:divider="#19000000" android:dividerHeight="4dp" android:fadingEdge="none" android:fastScrollEnabled="false" android:footerDividersEnabled="false" android:headerDividersEnabled="false" android:smoothScrollbar="true" />
代码:
public class MainActivity extends AppCompatActivity { PullToRefreshListView ptrshlv; List<List<String>> result; LinkedList<List<String>> arr; MyAdpt myadpt; String path = "https://suggest.taobao.com/sug?code=utf-8&q=%E6%98%BE%E7%A4%BA%E5%99%A8"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ptrshlv = (PullToRefreshListView) findViewById(R.id.pull_refresh_list); ptrshlv.setMode(PullToRefreshBase.Mode.BOTH); arr = new LinkedList<List<String>>(); myadpt = new MyAdpt(); ptrshlv.setAdapter(myadpt); new MyAsyncTask().execute(path); ptrshlv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) { arr.clear(); new MyAsyncTask().execute(path); } @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) { new MyAsyncTask().execute(path); } }); } //添加 class MyAsyncTask extends AsyncTask<String,Void,String>{ @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson = new Gson(); Bean bean = gson.fromJson(s, Bean.class); result = bean.getResult(); arr.addAll(result); myadpt.notifyDataSetChanged(); ptrshlv.onRefreshComplete(); } @Override protected void onProgressUpdate(Void... values) { super.onProgressUpdate(values); } @Override protected String doInBackground(String... strings) { try { URL url = new URL(strings[0]); HttpURLConnection huc = (HttpURLConnection) url.openConnection(); if(huc.getResponseCode()==200){ InputStream inputStream = huc.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(inputStream)); StringBuilder sb = new StringBuilder(); String st = ""; while((st=br.readLine())!=null){ sb.append(st); } String ss = sb.toString(); return ss; } } catch (Exception e) { e.printStackTrace(); } return null; } } class MyAdpt extends BaseAdapter{ @Override public int getCount() { return arr.size(); } @Override public Object getItem(int i) { return arr.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { Adpt ad; List<String> liststr = arr.get(i); if(view==null){ view = View.inflate(MainActivity.this,android.R.layout.simple_expandable_list_item_1,null); ad = new Adpt(); ad.tv1 = view.findViewById(android.R.id.text1); view.setTag(ad); }else{ ad = (Adpt) view.getTag(); } ad.tv1.setText(liststr.get(0)); return view; } class Adpt{ TextView tv1; } }}
阅读全文
0 0
- PullToFreshListView
- PullToFreshListView上拉刷新 + banner轮播+侧拉
- App启动画面问题
- QT 生成EXE执行文件
- 51 nod 最高奖励(贪心+优先队列)
- android 悬浮通知
- mysql树形查询语句
- PullToFreshListView
- RAID常用级别的比较
- header("Content-type:text/html;charset=gb2312")所引起的POST接收乱码
- 阿里云前端工程化工具 Dawn 正式开源!
- 设计模式的学习之路 --- 第一站(模板模式)
- 记第一次使用线程池管理多线程
- Git官方教程 --gittutorial
- C# 方法参数定义
- Redis指令 Llist数据类型深度理解