如果只需要 下拉刷新功能 不需要上拉加载,我们没有必要第三方的什么 XlistView、 PullToRefreshLayout什么的,用SwipeRefreshLayout就够用了,一般我们把 PullToRefreshLayout做为根View 里面包着 需要刷新的控件就可以了,如listView ……什么的 ,注意它里面 只能有一个子View 下面是一个简单的例子。
布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/srl"
android:layout_width="match_parent"
android:layout_height="fill_parent" >
<ListView
android:id="@+id/lv"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</ListView>
</android.support.v4.widget.SwipeRefreshLayout>
</RelativeLayout>
Activity:
public class MainActivity extends Activity implements OnRefreshListener {
private SwipeRefreshLayout swipRefresh;
private List<String> datalist;
private ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView listView = (ListView) findViewById(R.id.lv);
swipRefresh = (SwipeRefreshLayout) findViewById(R.id.srl); //下拉刷新控件 里面放一个子View
swipRefresh.setColorScheme(android.R.color.holo_blue_dark, android.R.color.holo_blue_light,
android.R.color.holo_green_light, android.R.color.holo_green_light);
swipRefresh.setOnRefreshListener(this);
datalist= new ArrayList<String>();
for (int i = 0; i < 10; i++) {
datalist.add("数据"+i);
}
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, datalist);
listView.setAdapter(adapter);
//先添加数据
}
@Override
public void onRefresh() {
swipRefresh.setRefreshing(true);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
for(int i = 0;i<5;i++) {
datalist.add("我是新数据"+i); //集合反传 新数据在前面
}
Collections.reverse(datalist);
if(adapter!=null) {
adapter.notifyDataSetChanged();
}
swipRefresh.setRefreshing(false); //关闭刷新动画
}
}, 2000);
}
}