Json解析

来源:互联网 发布:windows客户端开发 编辑:程序博客网 时间:2024/06/06 05:17
package com.example.lianviewpager;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.util.ArrayList;import java.util.List;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import xlistview.XListView;import xlistview.XListView.IXListViewListener;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.support.v4.view.ViewPager.OnPageChangeListener;import android.util.Log;import android.view.View;import android.view.ViewGroup;import android.view.animation.Animation;import android.view.animation.AnimationSet;import android.view.animation.LayoutAnimationController;import android.view.animation.TranslateAnimation;import android.widget.ImageView;import android.widget.ImageView.ScaleType;import android.widget.ListView;import android.widget.RadioButton;import com.example.lianviewpager.bean.Bean;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;public class MainActivity extends Activity implements IXListViewListener {private List<Bean> lists=new ArrayList<Bean>();private List<RadioButton> rb=new ArrayList<RadioButton>();private ArrayList<String> list = new ArrayList<String>();private ViewPager vp;private ImageLoader il;private int i1=1;private int i2=2;private int i;private String url = "http://c.m.163.com/nc/article/headline/T1348647909107/0-20.html";private Handler handler = new Handler() {private Bean bean;private Myadapter adapter;public void handleMessage(Message msg) {String request = (String) msg.obj;Log.i("log", msg.toString());switch (msg.what) {case 0:int c = vp.getCurrentItem();c++;vp.setCurrentItem(c);handler.sendEmptyMessageDelayed(0, 2000);break;case 1:try {if(i==i1){lists.clear();}JSONObject jo = new JSONObject(request);JSONArray jsonArray = jo.getJSONArray("T1348647909107");for (int i = 0; i < jsonArray.length(); i++) {bean = new Bean();JSONObject jsonObject = jsonArray.getJSONObject(i);String title = jsonObject.getString("title");String imgsrc = jsonObject.getString("imgsrc");String digest = jsonObject.getString("digest");if (jsonObject.has("ads")) {JSONArray jsonArray2 = jsonObject.getJSONArray("ads");for (int j = 0; j < jsonArray2.length(); j++) {JSONObject jsonObject2 = jsonArray2.getJSONObject(j);String string = jsonObject2.getString("imgsrc");list.add(string);}}if(jsonObject.has("imgextra")){ArrayList<String> imgextra_image=new ArrayList<String>();JSONArray jsonArray2 = jsonObject.getJSONArray("imgextra");for(int k=0;k<jsonArray2.length();k++){JSONObject jsonObject2 = jsonArray2.getJSONObject(k);String imgextra_imgsrc = jsonObject2.getString("imgsrc");imgextra_image.add(imgextra_imgsrc);}bean.setPan(true);bean.setImgextra_image(imgextra_image);}bean.setImgsrc(imgsrc);bean.setTitle(title);bean.setDigest(digest);lists.add(bean);}//load();if(adapter==null){adapter = new Myadapter(MainActivity.this,lists);lv.setAdapter(adapter);}vp.setAdapter(new PagerAdapter() {@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {// TODO Auto-generated method stubreturn arg0 == arg1;}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn Integer.MAX_VALUE;}@Overridepublic Object instantiateItem(ViewGroup container,int position) {ImageView iv = new ImageView(MainActivity.this);il.displayImage(list.get(position % list.size()),iv);iv.setScaleType(ScaleType.FIT_XY);container.addView(iv);return iv;}@Overridepublic void destroyItem(ViewGroup container,int position, Object object) {container.removeView((View) object);}});vp.setCurrentItem(list.size() * 5000);vp.setOnPageChangeListener(new OnPageChangeListener() {@Overridepublic void onPageSelected(int arg0) {for(int i=0;i<list.size();i++){if(i==arg0%list.size()){rb.get(i).setChecked(true);}else{rb.get(i).setChecked(false);}}}@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {// TODO Auto-generated method stub}@Overridepublic void onPageScrollStateChanged(int arg0) {// TODO Auto-generated method stub}});handler.sendEmptyMessageDelayed(0, 2000);} catch (JSONException e) {e.printStackTrace();}break;case 2:load();break;}};};private XListView lv;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);il = ImageLoader.getInstance();ImageLoaderConfiguration ilc = new ImageLoaderConfiguration.Builder(MainActivity.this).build();il.init(ilc);setContentView(R.layout.activity_main);lv = (XListView) findViewById(R.id.lv);vp = (ViewPager) findViewById(R.id.vp);lv.setPullLoadEnable(true);lv.setXListViewListener(this);RadioButton r1=(RadioButton) findViewById(R.id.r1);RadioButton r2=(RadioButton) findViewById(R.id.r2);RadioButton r3=(RadioButton) findViewById(R.id.r3);RadioButton r4=(RadioButton) findViewById(R.id.r4);RadioButton r5=(RadioButton) findViewById(R.id.r5);rb.add(r1);rb.add(r2);rb.add(r3);rb.add(r4);rb.add(r5);getJson();AnimationSet as=new AnimationSet(this, null);LayoutAnimationController controller=new LayoutAnimationController(as);  Animation translateIn = new TranslateAnimation(-400, 0, 0, 0);          translateIn.setDuration(1500);          translateIn.setFillAfter(true);          as.addAnimation(translateIn);        lv.setLayoutAnimation(controller);}private void getJson() {new Thread(new Runnable() {@Overridepublic void run() {try {URL urls = new URL(url);HttpURLConnection huc = (HttpURLConnection) urls.openConnection();huc.setReadTimeout(5000);huc.setConnectTimeout(5000);huc.setRequestMethod("GET");if (huc.getResponseCode() == 200) {InputStream inputStream = huc.getInputStream();String str;StringBuffer sb = new StringBuffer();BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));while ((str = br.readLine()) != null) {sb.append(str);}Message obtain = Message.obtain();obtain.obj = sb.toString();obtain.what = 1;handler.sendMessage(obtain);}} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}).start();}public void load(){lv.stopRefresh();lv.stopLoadMore();lv.setRefreshTime("刚刚");}@Overridepublic void onRefresh() {//i=i1;//getJson();handler.sendEmptyMessageDelayed(2, 2000);}@Overridepublic void onLoadMore() {//i=i2;//getJson();}}

0 0
原创粉丝点击