1.activity
package com.example.refreshlistview;
import java.util.ArrayList;
import com.example.refreshlistview.view.refreshListView;
import com.example.refreshlistview.view.refreshListView.isRefreshListener;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.BaseAdapter;
import android.widget.TextClock;
import android.widget.TextView;
public class MainActivity extends Activity {
private ArrayList<String> dataList;
private refreshListView rlv;
private String tag="MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
initUI();
initData();
initAdapter();
}
/**
* 初始化适配器
*/
private void initAdapter() {
final myAdapter myAdapter = new myAdapter();
rlv.setAdapter(myAdapter);
rlv.setOnIsRefreshListener(new isRefreshListener() {
@Override
public void headRefresh() {
new Thread() {
public void run() {
try {
sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
dataList.add(0, "添加头部数据");
runOnUiThread(new Runnable() {
public void run() {
myAdapter.notifyDataSetChanged();
rlv.closeHead();
}
});
};
}.start();
}
@Override
public void footLoading() {
new Thread() {
public void run() {
try {
sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
dataList.add(dataList.size(), "添加脚步数据");
runOnUiThread(new Runnable() {
public void run() {
myAdapter.notifyDataSetChanged();
rlv.closeFoot();
}
});
};
}.start();
}
});
}
/**
* 初始化数据
*/
private void initData() {
dataList = new ArrayList<String>();
for (int i = 0; i < 40; i++) {
dataList.add("这是数据:" + i);
}
}
/**
* 找到控件
*/
private void initUI() {
rlv = (refreshListView) findViewById(R.id.rlv);
}
class myAdapter extends BaseAdapter {
@Override
public int getCount() {
return dataList.size();
}
@Override
public String getItem(int position) {
// TODO Auto-generated method stub
return dataList.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView textView = new TextView(getApplicationContext());
textView.setText(getItem(position));
textView.setTextColor(Color.BLACK);
textView.setTextSize(18);
textView.setPadding(5, 5, 5, 5);
convertView = textView;
return convertView;
}
}
}
package com.example.refresh