package com.qian.tourism.activity;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.eclipse.jdt.annotation.Nullable;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.SimpleAdapter.ViewBinder;
import com.alibaba.fastjson.JSON;
import com.lidroid.xutils.BitmapUtils;
import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;
import com.qian.tourism.Entity.Scenicentity;
import com.qian.tourism.Entity.Scenicentity1;
public class Tab1Fragment extends Fragment {
private String cityId;
private String URL = "http://apis.haoservice.com/lifeservice/travel/scenery?pid=";
private String URL1 = "&page=1&key=313ece3735574549ba61f3de6a290f8a";
private String URL2;
private String provinceId;
BitmapUtils bitmapUtils;
ListView list;
@Override
public View onCreateView(LayoutInflater inflater,
@Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
bitmapUtils = new BitmapUtils(getActivity());
View view = inflater.inflate(R.layout.liebiao, null);
// Bundle bundle = getArguments();
cityId = "&cid=" + getActivity().getIntent().getStringExtra("cityId");
provinceId = getActivity().getIntent().getStringExtra("provinceId");
// URL2 = String.format(URL, cityId);
URL2 = URL + provinceId + cityId + URL1;
// 绑定XML中的ListView,作为Item的容器
list = (ListView) view.findViewById(R.id.jindian);
po();
return view;
}
private void po() {
HttpUtils http = new HttpUtils();
http.send(HttpMethod.GET, URL2, new RequestCallBack<String>() {
@Override
public void onFailure(HttpException arg0, String arg1) {
System.out.println("网络错误");
}
@Override
public void onSuccess(ResponseInfo<String> arg0) {
// 解析
Scenicentity1 parseObject = JSON.parseObject(arg0.result,
Scenicentity1.class);
final List<Scenicentity> result = parseObject.getResult();
int size = result.size();
// 生成动态数组,并且转载数据
ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();
for (int i = 0; i < size; i++) {
HashMap<String, String> map = new HashMap<String, String>();
map.put("Imgurl", result.get(i).getImgurl());
map.put("Title", result.get(i).getTitle());
map.put("Grade", result.get(i).getGrade());
map.put("Price_min", result.get(i).getPrice_min());
map.put("Address", result.get(i).getAddress());
mylist.add(map);
}
// 生成适配器,数组===》ListItem
SimpleAdapter mSchedule = new SimpleAdapter(getActivity(), // 没什么解释
mylist,// 数据来源
R.layout.hotel,// ListItem的XML实现
// 动态数组与ListItem对应的子项
new String[] { "Imgurl", "Title", "Grade", "Price_min",
"Address" },
// ListItem的XML文件里面的两个TextView ID
new int[] { R.id.jingdian, R.id.name, R.id.xingji,
R.id.qian, R.id.dizhi }){
@Override
public View getView(final int position,
View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
Button btn = (Button) view.findViewById(R.id.btn1);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent it=new Intent(getActivity(), SpotsActivity.class);
Bundle bundle = new Bundle();
bundle.putString("sid", result.get(position).getSid());
it.putExtras(bundle);
startActivity(it);
//System.out.println("position:"+result.get(position).getSid());
}
});
return view;
}
};
// 添加并且显示
list.setAdapter(mSchedule);
mSchedule.setViewBinder(new ViewBinder() {
@Override
public boolean setViewValue(View view, Object data,
String arg2) {
if (view instanceof ImageView && data instanceof String) {
String regex = "^(http|https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]";
Pattern patt = Pattern.compile(regex);
Matcher matcher = patt.matcher((String) data);
boolean isMatch = matcher.matches();
if (isMatch) {
bitmapUtils.display((ImageView) view,
(String) data);
}
return true;
} else {
return false;
}
}
});
}
});
}
}
本文章中的URL已过期,提示网络错误。