需要XlistView类库
private XListView lv;
private int id = 0;
private String dz = "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&qtime=20160411091603&pm=b61&uuid=1848c59c-185d-48d9-b0e9-782016041109&_chat_id=";
private String url = dz + id;
private MyListAdapter adapter;
private MyListView myListView;
private List<RowsBean> list = new ArrayList<RowsBean>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
checkNetWorkInfo();//
lv = (XListView) findViewById(R.id.lv);
indata();
}
private SharedPreferences preferences;
private void checkNetWorkInfo() {
if (!Wang.isNetworkAvailable(this)) {
new AlertDialog.Builder(this)
.setTitle("提示!")
.setIcon(android.R.drawable.ic_dialog_info)
.setMessage("检测到你还没开启网络,请开启")
.setNegativeButton("取消",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
preferences = getSharedPreferences(
"wang", MODE_PRIVATE);
Editor editor = preferences.edit();
editor.putBoolean("fa", false);
editor.commit();
}
})
.setPositiveButton("开启",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
startActivity(new Intent(
Settings.ACTION_WIRELESS_SETTINGS));// 进入无线网络配置界面
startActivity(new Intent(
Settings.ACTION_WIFI_SETTINGS)); // 进入手机中的wifi网络设置界面
}
}).show();
}
}
private void indata() {
HttpUtils httpUtils = new HttpUtils();
httpUtils.send(HttpMethod.GET, url, new RequestCallBack<String>() {
@Override
public void onFailure(HttpException arg0, String arg1) {
System.out.println(arg0 + "失败" + arg1);
}
@Override
public void onSuccess(ResponseInfo<String> arg0) {
String json = arg0.result;
Gson gson = new Gson();
d js = gson.fromJson(json, d.class);
list.addAll(js.getResult().getRows());
if (adapter == null) {
adapter = new MyListAdapter(list, MainActivity.this);
myListView = new MyListView(lv, adapter) {
@Override
public void shuaXin() {
list.clear();
id = 0;
url = dz + id;
indata();
}
@Override
public void jiaZai() {
id++;
url = dz + id;
indata();
}
};
} else {
adapter.notifyDataSetChanged();
myListView.onOK();
}
}
});
}
//点击二次退出
private long exitTime = 0;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
if (keyCode == KeyEvent.KEYCODE_BACK
&& event.getAction() == KeyEvent.ACTION_DOWN) {
if ((System.currentTimeMillis() - exitTime) > 2000) {
Toast toast = Toast.makeText(getApplicationContext(),
"再按一次退出程序", Toast.LENGTH_SHORT);
toast.setGravity(BIND_ABOVE_CLIENT, 0, 0);
toast.show();
exitTime = System.currentTimeMillis();
} else {
finish();
System.exit(0);
}
} else {
}
return true;
}
return super.onKeyDown(keyCode, event);
}
/权限
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
适配器
public class MyListAdapter extends BaseAdapter{
private List<RowsBean> list;
private Context context;
public MyListAdapter(List<RowsBean> list, Context context) {
super();
this.list = list;
this.context = context;
}
@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) {
if (convertView == null) {
convertView = View.inflate(context, R.layout.wenjian,
null);
}
ImageView img=(ImageView) convertView.findViewById(R.id.img);
ImageLoader.getInstance().displayImage(list.get(position).getInfo().getDefault_image(), img);
TextView name = (TextView) convertView.findViewById(R.id.name);
name.setText(list.get(position).getInfo().getLoupan_name());
TextView name1 = (TextView) convertView.findViewById(R.id.en1);
name1.setText(list.get(position).getInfo().getLoupan_property_type());
TextView name2 = (TextView) convertView.findViewById(R.id.en2);
name2.setText(list.get(position).getInfo().getNew_price_back());
TextView name3 = (TextView) convertView.findViewById(R.id.en3);
name3.setText(list.get(position).getInfo().getNew_price_value());
TextView name4 = (TextView) convertView.findViewById(R.id.en4);
name4.setText(list.get(position).getInfo().getRegion_title());
return convertView;
}
}
布局文件
<com.riso.myxlistview.XListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/lv" />
import com.nostra13.universalimageloader.cache.disc.naming.HashCodeFileNameGenerator;
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
import com.nostra13.universalimageloader.cache.memory.impl.WeakMemoryCache;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
import android.app.Application;
//加载图片
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
.cacheInMemory(true).imageScaleType(ImageScaleType.EXACTLY)
.cacheOnDisk(true).build();
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
this)
.threadPoolSize(3)
// default
.threadPriority(Thread.NORM_PRIORITY - 2)
.denyCacheImageMultipleSizesInMemory()
.diskCacheFileNameGenerator(new Md5FileNameGenerator())
.tasksProcessingOrder(QueueProcessingType.LIFO)
.denyCacheImageMultipleSizesInMemory()
// .memoryCache(new LruMemoryCache((int) (6 * 1024 * 1024)))
.memoryCache(new WeakMemoryCache())
.memoryCacheSize((int) (2 * 1024 * 1024))
.memoryCacheSizePercentage(13)
// default
// .diskCache(new UnlimitedDiscCache(cacheDir))
// default
.diskCacheSize(50 * 1024 * 1024).diskCacheFileCount(100)
.diskCacheFileNameGenerator(new HashCodeFileNameGenerator())
.defaultDisplayImageOptions(defaultOptions).writeDebugLogs() // Remove
.build();
// Initialize ImageLoader with configuration.
ImageLoader.getInstance().init(config);
}
}