XListView20160328
///////////MyBaseAdapter/////////
package com.bwei.adapter;
import java.util.List;
import com.bwei.test.R;
import com.bwei.vo.Datas;
import com.lidroid.xutils.BitmapUtils;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class MyBaseAdapter extends BaseAdapter{
private List<Datas> list;
private Context context;
public MyBaseAdapter(List<Datas> list,Context context){
this.context=context;
this.list=list;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return list.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) {
// TODO Auto-generated method stub
ViewHolder vh;
if(convertView==null){
vh=new ViewHolder();
convertView=LayoutInflater.from(context).inflate(R.layout.base, null);
vh.tv=(TextView) convertView.findViewById(R.id.tv);
vh.image=(ImageView) convertView.findViewById(R.id.image);
convertView.setTag(vh);
}else{
vh=(ViewHolder) convertView.getTag();
}
vh.tv.setText(list.get(position).getNews_title());
BitmapUtils bit=new BitmapUtils(context);
bit.display(vh.image, list.get(position).getPic_url());
return convertView;
}
class ViewHolder{
ImageView image;
TextView tv;
}
}
/////////////NetWorkUtils///////////
package com.bwei.networkutils;
import java.io.IOException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.apache.http.util.EntityUtils;
public class NetWorkUtils {
public static final String JSON_URL="http://api.expoon.com/AppNews/getNewsList/type/1p/1";
public static final String JSON_URLs="http://api.expoon.com/AppNews/getNewsList/type/1p/";
public static String getJsonFromWeb(String json_url) {
String result = "";
HttpGet get = new HttpGet(json_url);
// 设置请求参数
HttpParams params = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(params, 50 * 1000);
HttpConnectionParams.setSoTimeout(params, 50* 1000);
// 创建httpclient对象
HttpClient client = new DefaultHttpClient(params);
// 执行请求,获得结果
try {
HttpResponse response = client.execute(get);
if (response.getStatusLine().getStatusCode() == 200) {
// 获得相应结果,为httpentity类型
HttpEntity entity = response.getEntity();
// 转换为字符串类型
result = EntityUtils.toString(entity, "utf-8");
System.out.println(result+"===================");
}
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}
}
////////////MainActivity/////
package com.bwei.test;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import com.bwei.adapter.MyBaseAdapter;
import com.bwei.networkutils.NetWorkUtils;
import com.bwei.vo.Datas;
import com.bwei.vo.MyData;
import com.example.listviewshangxia.XListView;
import com.example.listviewshangxia.XListView.IXListViewListener;
import com.google.gson.Gson;
public class MainActivity extends Activity implements IXListViewListener{
private XListView mylist;
private List<Datas> list;
private List<Datas> lists;
int i=2;
@SuppressLint("HandlerLeak")
private Handler h=new Handler(){
private MyBaseAdapter m;
public void handleMessage(android.os.Message msg) {
if(msg.what==2){
lists=list;
m = new MyBaseAdapter(lists, MainActivity.this);
mylist.setAdapter(m);
}
if(msg.what==3){
lists.addAll(list);
m.notifyDataSetChanged();
mylist.setAdapter(m);
}
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
private void init() {
// TODO Auto-generated method stub
mylist=(XListView) findViewById(R.id.mylist);
mylist.setPullLoadEnable(true);
mylist.setPullRefreshEnable(true);
mylist.setXListViewListener(this);
qingqiujson();
}
private void qingqiujson() {
new Thread(){
public void run() {
String str=NetWorkUtils.getJsonFromWeb(NetWorkUtils.JSON_URL);
Gson g=new Gson();
MyData my=g.fromJson(str, MyData.class);
list=my.getData();
h.sendEmptyMessage(2);
};
}.start();
}
private void qingqiujson2() {
new Thread(){
public void run() {
String str=NetWorkUtils.getJsonFromWeb(NetWorkUtils.JSON_URLs+i);
Gson g=new Gson();
MyData my=g.fromJson(str, MyData.class);
list=my.getData();
h.sendEmptyMessage(3);
};
}.start();
}
// 刷新
@Override
public void onRefresh() {
// TODO Auto-generated method stub
qingqiujson();
// 设置时间;
onLoad();
}
/** 停止刷新, */
private void onLoad() {
//停止刷新、加载
mylist.stopRefresh();
mylist.stopLoadMore();
// 设置日期格式
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 获取当前系统时间
String nowTime = df.format(new Date(System.currentTimeMillis()));
// 释放时提示正在刷新时的当前时间
mylist.setRefreshTime(nowTime);
}
// 加载更多
@Override
public void onLoadMore() {
// TODO Auto-generated method stub
qingqiujson2();
// 设置时间;
onLoad();
}
}
/////////////////activity_main.xml///////
<LinearLayout 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:orientation="vertical"
tools:context=".MainActivity" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="#f0f0f0"
>
<com.example.listviewshangxia.XListView
android:id="@+id/mylist"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:cacheColorHint="#00000000"
>
</com.example.listviewshangxia.XListView>
</LinearLayout>
</LinearLayout>

浙公网安备 33010602011771号