XListView请求网络数据的使用;
导入xListview
Activity实现 XListView.IXListViewListener
重写 onRefresh ,onLoad 方法
public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener {
private Adater adater;
private List<Goods.ResultBean.RowsBean> list = new ArrayList<>();
private XListView xListView;
private Handler handler;
private DrawerLayout drawerLayout;
private ImageView iv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
handler = new Handler();
adater = new Adater();
xListView.setAdapter(adater);
initdata();
}
private void initView() {
xListView = (XListView) findViewById(R.id.techan_xListView);
drawerLayout = (DrawerLayout) findViewById(R.id.DrawerLayout);
iv = (ImageView) findViewById(R.id.image);
xListView.setPullLoadEnable(true);
//接口回调一定要配, 容易忘记;
xListView.setXListViewListener(this);
}
private void initdata() {
new MyAsyncTaskString().execute("http://api.fang.anjuke.com/m/android/1.3/shouye/recInfosV3/?city_id=14&lat=40.04652&lng=116.306033&api_key=androidkey&sig=9317e9634b5fbc16078ab07abb6661c5&macid=45cd2478331b184ff0e15f29aaa89e3e&app=a-ajk&_pid=11738&o=PE-TL10-user+4.4.2+HuaweiPE-TL10+CHNC00B260+ota-rel-keys%2Crelease-keys&from=mobile&m=Android-PE-TL10&cv=9.5.1&cid=14&i=864601026706713&v=4.4.2&pm=b61&uuid=1848c59c-185d-48d9-b0e9-782016041109&_chat_id=0&qtime=20160411091603");
}
class Adater extends BaseAdapter {
public Adater() {
super();
}
@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 containerView, ViewGroup viewGroup) {
containerView = View.inflate(MainActivity.this, R.layout.listview, null);
ImageView imageView = (ImageView) containerView.findViewById(R.id.imageView);
TextView tv = (TextView) containerView.findViewById(R.id.textView);
tv.setText(list.get(i).getInfo().getTags());
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
drawerLayout.openDrawer(iv);
}
});
new MyAsyncTaskImage(imageView).execute(list.get(i).getInfo().getDefault_image());
return containerView;
}
}
class MyAsyncTaskString extends AsyncTask<String, Void, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson = new Gson();
Goods goods = gson.fromJson(s, Goods.class);
List<Goods.ResultBean.RowsBean> tempList = goods.getResult().getRows();
Log.e("wzq", "onPostExecute:tempList "+tempList.size());
list.addAll(tempList);
Log.e("wzq", "onPostExecute:list.size() "+list.size());
adater.notifyDataSetChanged();
}
@Override
protected String doInBackground(String... strings) {
return new Utiles().getAsytemString(strings[0]);
}
@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}
}
class MyAsyncTaskImage extends AsyncTask<String, Void, Bitmap> {
private ImageView image;
public MyAsyncTaskImage(ImageView image) {
this.image = image;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected void onPostExecute(Bitmap bitmap) {
super.onPostExecute(bitmap);
image.setImageBitmap(bitmap);
}
@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}
@Override
protected Bitmap doInBackground(String... strings) {
return new Utiles().getAsytemImage(strings[0]);
}
}
// 关闭
public void onLoad() {
xListView.stopRefresh();
xListView.stopLoadMore();
xListView.setRefreshTime("刚刚");
}
//刷新
@Override
public void onRefresh() {
list.clear();
initdata();
onLoad();
}
//加载更多
@Override
public void onLoadMore() {
//1--保留之前集合中的数据
//2 把新数据添加到list中,更新适配器;
initdata();
onLoad();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
this.finish();
}
return false;
}
}