网络json解析

bean对象

public class NewsBean {
    private String title;
    private String data;
    private String category;
    private String author_name;
    public NewsBean() {
        super();
        // TODO Auto-generated constructor stub
    }
    public NewsBean(String title, String data, String category,
            String author_name) {
        super();
        this.title = title;
        this.data = data;
        this.category = category;
        this.author_name = author_name;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getData() {
        return data;
    }
    public void setData(String data) {
        this.data = data;
    }
    public String getCategory() {
        return category;
    }
    public void setCategory(String category) {
        this.category = category;
    }
    public String getAuthor_name() {
        return author_name;
    }
    public void setAuthor_name(String author_name) {
        this.author_name = author_name;
    }
    @Override
    public String toString() {
        return "NewsBean [title=" + title + ", data=" + data + ", category="
                + category + ", author_name=" + author_name + "]";
    }
    }
public class MainActivity extends Activity {
    private List<NewsBean> news;
    private NewsBean currNews;
    private ListView lv;
    private MyAdapter adapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main1);
        news = new ArrayList<NewsBean>();
        lv = (ListView) this.findViewById(R.id.act_main_lv);
        initDatas();
    }

    private void initDatas() {
//      for (int i = 0; i < 10; i++) {
//          news.add(new NewsBean());
//      }
        adapter = new MyAdapter();
        lv.setAdapter(adapter);
    }

    /**
     *
     * 适配器
     *
     */
    class MyAdapter extends BaseAdapter{




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

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

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

        @Override
        public View getView(int position, View v, ViewGroup parent) {
            MyViewHolder vh = null;
            if(v==null){
                v = getLayoutInflater().inflate(R.layout.item, null);
                vh = new MyViewHolder();
                vh.tvTitle = (TextView) v.findViewById(R.id.item_title);
                vh.tvDate = (TextView) v.findViewById(R.id.item_date);
                vh.tvKind = (TextView) v.findViewById(R.id.item_kind);
                vh.tvAuthor = (TextView) v.findViewById(R.id.item_author);
                v.setTag(vh);
            }else{
                vh = (MyViewHolder) v.getTag();
            }
            //填充数据
            vh.tvTitle.setText(news.get(position).getTitle());
            vh.tvDate.setText(news.get(position).getData());
            vh.tvKind.setText(news.get(position).getCategory());
            vh.tvAuthor.setText(news.get(position).getAuthor_name());
            return v;
        }

        class MyViewHolder{
            TextView tvTitle,tvDate,tvKind,tvAuthor;
        }

    }



    //--------------------------------------------------------------------------
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        new Thread() {
            public void run() {
                /**
                 * 联网获取数据 请求地址:http://v.juhe.cn/toutiao/index
                 * 请求参数:type=yule&key=c8fe066ae002d20891fbc48a1783a1ee 请求方式:GET
                 */
                URL url;
                try {
                    url = new URL(
                            "http://v.juhe.cn/toutiao/index?type=yule&key=c8fe066ae002d20891fbc48a1783a1ee");
                    // 网络连接对象
                    HttpURLConnection conn = (HttpURLConnection) url
                            .openConnection();
                    conn.setRequestMethod("GET");
                    conn.setReadTimeout(4000);
                    conn.setConnectTimeout(5000);

                    conn.connect();

                    StringBuffer sb = new StringBuffer();
                    String str = null;
                    BufferedReader br = new BufferedReader(
                            new InputStreamReader(conn.getInputStream()));
                    while ((str = br.readLine()) != null) {
                        sb.append(str);
                    }

//                  Log.i("myTag", sb.toString());
                    //json解析
                    JSONObject object = new JSONObject(sb.toString());
                    object = object.getJSONObject("result");
                    JSONArray jsonArray = object.getJSONArray("data");


                    for (int i = 0; i < jsonArray.length(); i++) {
                        object = (JSONObject) jsonArray.get(i);
                        currNews = new NewsBean();
                        currNews.setTitle(object.getString("title"));
                        currNews.setData(object.getString("date"));
                        currNews.setCategory(object.getString("category"));
                        currNews.setAuthor_name(object.getString("author_name"));

                        news.add(currNews);
//                      
//                      setOnUpdateListener(news, new updateListener(){
//
//                          @Override
//                          public void updateDatas(List<NewsBean> news) {
//                              adapter.notifyDataSetChanged()
//                          }
//                          
//                      });

                        runOnUiThread(new Runnable() {

                            @Override
                            public void run() {
                                adapter.notifyDataSetChanged();
                            }
                        });

                    }

                    for (NewsBean n : news) {
                        System.out.println(n+"\r\n");
                    }



                } catch (Exception e) {
                    e.printStackTrace();
                }
            };
        }.start();

        return super.onOptionsItemSelected(item);
    }

//  //----------------------------------------------------------------------------------------
//  private updateListener listener;
//  
//  public void setOnUpdateListener(List<NewsBean> news, updateListener listener){
//      if(listener!=null){
//          listener.updateDatas(news);
//      }
//  }
//  
//  public interface updateListener{
//      void updateDatas(List<NewsBean> news);
//  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值