XListView的上拉加载和下拉刷新
布局页面
<com.yyq.week2.XlistView.XListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/lv"></com.yyq.week2.XlistView.XListView>
主方法
public class MainActivity extends AppCompatActivity {
private XListView lv;
private List<MyBean.ResultBean.RowsBean> list=new ArrayList<>();
Handler h=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
String s= (String) msg.obj;
int n=msg.arg1;
Gson g=new Gson();
MyBean b=g.fromJson(s,MyBean.class);
if(n==1) {
//1.清空之前集合的数
list.clear();
//2.加载新数据
list.addAll(b.getResult().getRows());
//3.通知适配器刷新
ada.notifyDataSetChanged();
}else if(n==0){
//1.加载新数据
//2.把新数据追加到集合里
list.addAll(b.getResult().getRows());
//3.通知适配器刷新
ada.notifyDataSetChanged();
}
//4.停止加载更多
stopXlistView();
}
};
private MyAdapter ada;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv =(XListView) findViewById(R.id.lv);
lv.setXListViewListener(new XListView.IXListViewListener() {
@Override//刷新
public void onRefresh() {
jiexi(1);
}
@Override//加载
public void onLoadMore() {
jiexi(0);
}
});
ada =new MyAdapter();
lv.setAdapter(ada);
jiexi(1);
}
private void jiexi(final int n) {
String title="http://api.fang.anjuke.com/m/android/1.3/shouye/recI" +
"nfosV3/?city_id=14&lat=40.04652&lng=116.306033&api_key=a" +
"ndroidkey&sig=9317e9634b5fbc16078ab07abb6661c5&macid=45cd" +
"2478331b184ff0e15f29aaa89e3e&app=a-ajk&_pid=11738&o=PE-TL" +
"10-user+4.4.2+HuaweiPE-TL10+CHNC00B260+ota-rel-keys%2Cre" +
"lease-keys&from=mobile&m=Android-PE-TL10&cv=9.5.1&cid=14&" +
"i=864601026706713&v=4.4.2&qtime=20160411091603&pm=b61&uui" +
"d=1848c59c-185d-48d9-b0e9-782016041109&_chat_id=0";
new AsyncTask<String,Void,String>(){
@Override
protected String doInBackground(String... strings) {
try {
URL url=new URL(strings[0]);
HttpURLConnection hct= (HttpURLConnection) url.openConnection();
hct.setConnectTimeout(5000);
hct.setRequestMethod("GET");
int code=hct.getResponseCode();
if(code==200){
InputStream is=hct.getInputStream();
return Stream.ReadFrom(is);
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Message m=Message.obtain();
m.obj=s;
m.arg1=n;
h.sendMessage(m);
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
}.execute(title);
}
class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int i) {
return list.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
ViewHolder vh;
if(view==null){
view=View.inflate(MainActivity.this,R.layout.item,null);
vh=new ViewHolder();
vh.img= (ImageView) view.findViewById(R.id.img);
vh.name= (TextView) view.findViewById(R.id.name);
vh.weizhi= (TextView) view.findViewById(R.id.weizhi);
vh.jiage= (TextView) view.findViewById(R.id.jiage);
vh.tedian= (TextView) view.findViewById(R.id.tedian);
vh.leixing= (TextView) view.findViewById(R.id.leixing);
view.setTag(vh);
}else{
vh= (ViewHolder) view.getTag();
}
ImageLoader.getInstance().displayImage(list.get(i).getInfo().getDefault_image(),vh.img);
vh.name.setText(list.get(i).getInfo().getLoupan_name());
vh.weizhi.setText(list.get(i).getInfo().getAddress());
vh.jiage.setText(list.get(i).getInfo().getNew_price_value()+list.get(i).getInfo().getNew_price_back());
vh.tedian.setText(list.get(i).getInfo().getSale_title());
vh.leixing.setText(list.get(i).getInfo().getTags());
return view;
}
}
class ViewHolder {
ImageView img;
TextView name;
TextView weizhi;
TextView jiage;
TextView tedian;
TextView leixing;
}
//停止上拉刷新下拉加载
public void stopXlistView(){
//设置刷新时间
SimpleDateFormat formatter = new SimpleDateFormat(
"yyyy年MM月dd日 HH:mm:ss ");
Date curDate = new Date(System.currentTimeMillis());
// 获取当前时间
String str = formatter.format(curDate);
lv.setRefreshTime(str);
//停止加载更多
lv.stopLoadMore();
//停止刷新
lv.stopRefresh();
}
}

浙公网安备 33010602011771号