简单解析Json

public class MainActivity extends AppCompatActivity {
    XListView xlv;
    List<News.NewslistBean> list;
    News news;
    boolean flag=true;
    Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
        }
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        xlv= (XListView) findViewById(R.id.xlv);
        list=new ArrayList<News.NewslistBean>();
        initData();
        xlv.setPullRefreshEnable(true);
        xlv.setPullLoadEnable(true);
        xlv.setXListViewListener(new XListView.IXListViewListener( ) {
            @Override
            public void onRefresh() {
                handler.postDelayed(new Runnable( ) {
                    @Override
                    public void run() {
                        flag=true;
                        initData();
                        xlv.stopRefresh();
                    }
                },3000);
            }

            @Override
            public void onLoadMore() {
                handler.postDelayed(new Runnable( ) {
                    @Override
                    public void run() {
                        flag=false;
                        initData();
                        xlv.stopLoadMore();
                    }
                },3000);
            }
        });
    }

    private void initData() {
        new AsyncTask<String,String,String>()
        {

            @Override
            protected String doInBackground(String... strings) {
                getData();
                ImageLoaderConfiguration aDefault = ImageLoaderConfiguration.createDefault(MainActivity.this);
                ImageLoader.getInstance().init(aDefault);
                return null;
            }

            @Override
            protected void onPostExecute(String s) {
                MyAdpter myAdpter=new MyAdpter();
                xlv.setAdapter(myAdpter);
                super.onPostExecute(s);
            }
        }.execute();

    }

    private void getData() {
        try {
            URL url=new URL("https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10");
            HttpURLConnection conn= (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("GET");
            int code=conn.getResponseCode();
            if (code==200)
            {
                Gson gson=new Gson();
                news=gson.fromJson(new InputStreamReader(conn.getInputStream(),"UTF-8"),News.class);
                if (flag)
                {
                    list=news.getNewslist();
                }else
                {
                    list.addAll(0,news.getNewslist());
                }
            }
        } catch (Exception e) {
            e.printStackTrace( );
        }

    }
    class MyAdpter extends BaseAdapter{

        @Override
        public int getCount() {
            return list.size();
        }

        @Override
        public Object getItem(int i) {
            return null;
        }

        @Override
        public long getItemId(int i) {
            return 0;
        }

        @Override
        public View getView(int i, View view, ViewGroup viewGroup) {
            ViewHolder holder;
            if (view==null)
            {
                holder=new ViewHolder();
                view=View.inflate(MainActivity.this,R.layout.list_item,null);
                holder.name= (TextView) view.findViewById(R.id.tv);
                holder.image= (ImageView) view.findViewById(R.id.iv);
                view.setTag(holder);
            }else
            {
                holder= (ViewHolder) view.getTag();
            }
            holder.name.setText(news.getNewslist().get(i).getTitle());
            ImageLoader.getInstance().displayImage(news.getNewslist().get(i).getPicUrl(),holder.image);
            return view;
        }
    }
    class ViewHolder{
        ImageView image;
        TextView name;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值