Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> 下拉刷新--第三方開源--PullToRefresh,開源--pulltorefresh

下拉刷新--第三方開源--PullToRefresh,開源--pulltorefresh

編輯:關於android開發

下拉刷新--第三方開源--PullToRefresh,開源--pulltorefresh


效果預覽圖:

下載地址:https://github.com/chrisbanes/Android-PullToRefresh

 

activity_main.xml:

 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     tools:context="com.zzw.testpulltorefresh.MainActivity" >
 6 
 7     <com.handmark.pulltorefresh.library.PullToRefreshListView
 8         android:id="@+id/listView"
 9         android:layout_width="match_parent"
10         android:layout_height="match_parent" />
11 
12 </RelativeLayout>

MainActuvity.java:

 1 package com.zzw.testpulltorefresh;
 2 
 3 import java.util.ArrayList;
 4 import java.util.Date;
 5 
 6 import com.handmark.pulltorefresh.library.PullToRefreshBase;
 7 import com.handmark.pulltorefresh.library.PullToRefreshBase.Mode;
 8 import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener;
 9 import com.handmark.pulltorefresh.library.PullToRefreshListView;
10 
11 import android.app.Activity;
12 import android.os.AsyncTask;
13 import android.os.Bundle;
14 import android.os.SystemClock;
15 import android.widget.Adapter;
16 import android.widget.ArrayAdapter;
17 import android.widget.ListView;
18 import android.widget.TextView;
19 import android.widget.Toast;
20 
21 public class MainActivity extends Activity {
22 
23     private PullToRefreshListView listView;
24     private ArrayList<String> data;
25     private ArrayAdapter adapter;
26     private int count = 0;
27 
28     @Override
29     protected void onCreate(Bundle savedInstanceState) {
30         super.onCreate(savedInstanceState);
31         setContentView(R.layout.activity_main);
32 
33         data = new ArrayList<String>();
34 
35         listView = (PullToRefreshListView) findViewById(R.id.listView);
36         // 設置向下滑動時刷新
37          listView.setMode(Mode.PULL_FROM_START);
38         // 支持下拉和上拉  listView.setMode(Mode.BOTH);    
39         // 設置監聽
40         listView.setOnRefreshListener(new OnRefreshListener<ListView>() {
41 
42             @Override
43             public void onRefresh(PullToRefreshBase<ListView> refreshView) {
44                 // 在這完成業務邏輯
45                 new MyAsyncTask().execute();
46             }
47         });
48 
49         adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, data);
50         listView.setAdapter(adapter);
51 
52         // 設置如果數據為空的時候顯示什麼
53         TextView textView = new TextView(this);
54         textView.setText("請下拉刷新");
55         listView.setEmptyView(textView);
56     }
57 
58     private class MyAsyncTask extends AsyncTask {
59 
60         @Override
61         protected void onPreExecute() {
62             // 開始刷新
63             listView.setRefreshing();
64         }
65 
66         @Override
67         protected Object doInBackground(Object... params) {
68             // 假設耗時時間為3秒
69             SystemClock.sleep(3000);
70             return count++;
71         }
72 
73         @Override
74         protected void onPostExecute(Object result) {
75 
76             data.add(0, result + "");
77             adapter.notifyDataSetChanged();
78 
79             // 設置標簽
80             listView.setLastUpdatedLabel("最後更新新的時間:" + new Date());
81 
82             // 刷新完成
83             listView.onRefreshComplete();
84             Toast.makeText(getApplicationContext(), "加載成功", 0).show();
85         }
86     }
87 
88 }

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved