private ViewPager viewPager;
private XListView xListView;
private boolean flag;
private int index=0;
private static final int TYPE_0 = 0;
private static final int TYPE_1 = 1;
private String a = "http://tnfs.tngou.net/image/info/150912/6f1f81106d337d769882e34f481cc191.jpg";
private String b = "http://tnfs.tngou.net/image/info/150912/2214b610bf24022d8d79eb6e616754fb.jpg";
private String c = "http://tnfs.tngou.net/image/info/150820/4894d9f79ee1f112e46fbbb35047b714.jpg";
private String arr[] = {a,b,c};
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
int currentItem = viewPager.getCurrentItem();
if (currentItem<base.getCount()-1){
currentItem++;
}else {
currentItem=0;
}
viewPager.setCurrentItem(currentItem);
handler.sendEmptyMessageDelayed(0,3000);
super.handleMessage(msg);
}
};
private MyBase1 base;
private InfoBean infoBean;
private MyBase2 base2;
private List<InfoBean.ResultBean> list;
private ImageView imageview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
viewPager = (ViewPager) findViewById(R.id.VP);
xListView = (XListView) findViewById(R.id.XLV);
xListView.setPullLoadEnable(true);
xListView.setXListViewListener(this);
base = new MyBase1();
viewPager.setAdapter(base);
data("http://apis.juhe.cn/catering/querybycity?key=25288cbd70dd6611b564156a994cd23a&city=北京",index+"",10+"");
handler.sendEmptyMessageDelayed(0,3000);
}
class MyBase1 extends PagerAdapter{
@Override
public int getCount() {
return arr.length;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView image = new ImageView(MainActivity.this);
container.addView(image);
DisplayImageOptions options = new DisplayImageOptions.Builder()
.cacheInMemory(true)
.cacheOnDisk(true)
.build();
ImageLoader.getInstance().displayImage(arr[position],image,options);
return image;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
}
public void data(final String path, String page, String pagesize){
new AsyncTask<String, Void, String>() {
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
if(s!=null){
Gson gson = new Gson();
infoBean = gson.fromJson(s, InfoBean.class);
// list = infoBean.getResult();
if(infoBean.getResult() == null)
{
Toast.makeText(MainActivity.this, infoBean.getReason(), Toast.LENGTH_SHORT).show();
return;
}else {
list = infoBean.getResult();
}
if (base2==null){
base2 = new MyBase2(list);
xListView.setAdapter(base2);
}else {
base2.Imageloader1(list,flag);
base2.notifyDataSetChanged();
}
}
}
@Override
protected String doInBackground(String... params) {
try {
String path = params[0];
String pn = params[1];
String rn = params[2];
URL url = new URL(path);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
int code = connection.getResponseCode();
if (code==HttpURLConnection.HTTP_OK) {
InputStream is = connection.getInputStream();
String json = InfoUtils.json(is);
return json;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}.execute(path,page,pagesize);
}
@Override
public void onRefresh() {
++index;
data("http://apis.juhe.cn/catering/querybycity?key=25288cbd70dd6611b564156a994cd23a&city=北京",index+"",10+"");
flag=true;
xListView.stopRefresh(true);
}
@Override
public void onLoadMore() {
++index;
data("http://apis.juhe.cn/catering/querybycity?key=25288cbd70dd6611b564156a994cd23a&city=北京",index+"",10+"");
flag=false;
xListView.stopLoadMore();
}
class MyBase2 extends BaseAdapter{
private List<InfoBean.ResultBean> list;
public MyBase2(List<InfoBean.ResultBean> list) { this.list = list;
}
public void Imageloader1(List<InfoBean.ResultBean> list1, boolean flag){
for (InfoBean.ResultBean step: list1) {
if (flag) {
list.add(0, step);
}else {
list.add(step);
}
}
}
@Override
public int getCount() {
return list!=null?list.size():0;
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public int getItemViewType(int position) {
if (position%2==0){
return TYPE_0;
}else {
return TYPE_1;
}
}
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
int type = getItemViewType(position);
switch (type){
case 1:
convertView = convertView.inflate(MainActivity.this,R.layout.item,null);
imageview = (ImageView) convertView.findViewById(R.id.IV);
TextView textview = (TextView) convertView.findViewById(R.id.TV);
textview.setText(list.get(position).getTags());
imageview.setTag(list.get(position).getPhotos());
imageview(list.get(position).getPhotos(),imageview);
imageview.setImageResource(R.mipmap.ic_launcher);
break;
case 0:
convertView = convertView.inflate(MainActivity.this,R.layout.item1,null);
imageview = (ImageView) convertView.findViewById(R.id.IV1);
TextView textview1 = (TextView) convertView.findViewById(R.id.TV1);
textview1.setText(list.get(position).getTags());
imageview.setTag(list.get(position).getPhotos());
imageview(list.get(position).getPhotos(),imageview);
imageview.setImageResource(R.mipmap.ic_launcher);
break;
}
return convertView;
}
}
public void imageview(String path,ImageView image){
new AsyncTask<String, Void, Bitmap>() {
@Override
protected void onPostExecute(Bitmap bitmap) {
super.onPostExecute(bitmap);
if (bitmap!=null){
imageview.setImageBitmap(bitmap);
}else {
imageview.setImageResource(R.mipmap.ic_launcher);
}
}
@Override
protected Bitmap doInBackground(String... params) {
try {
String path = params[0];
URL url = new URL(path);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
int code = connection.getResponseCode();
if (code==HttpURLConnection.HTTP_OK){
InputStream is = connection.getInputStream();
return BitmapFactory.decodeStream(is);
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}.execute(path);
}
@Override
protected void onDestroy() {
super.onDestroy();
try {
File file = new File(Environment.getExternalStorageDirectory(),"listview.txt");
FileOutputStream outputStream = new FileOutputStream(file);
outputStream.write(list.toString().getBytes());
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}