zoukankan      html  css  js  c++  java
  • ANDROID笔记:JSON和Adapter的使用

     1 package com.example.android_json;
     2 
     3 import java.io.BufferedReader;
     4 import java.io.IOException;
     5 import java.io.InputStream;
     6 import java.io.InputStreamReader;
     7 import java.io.UnsupportedEncodingException;
     8 
     9 import org.json.JSONArray;
    10 import org.json.JSONException;
    11 
    12 import android.app.Activity;
    13 import android.os.Bundle;
    14 import android.widget.ListView;
    15 
    16 public class MainActivity extends Activity {
    17 
    18     @Override
    19     protected void onCreate(Bundle savedInstanceState) {
    20         super.onCreate(savedInstanceState);
    21         setContentView(R.layout.activity_main);
    22         ListView listView = (ListView) findViewById(R.id.listview);
    23         
    24         InputStream inputStream = getResources().openRawResource(R.raw.person);
    25         BufferedReader bufferedReader;
    26         JSONArray jsonArray = null;
    27         try {
    28             bufferedReader = new BufferedReader(new InputStreamReader(
    29                     inputStream));
    30             StringBuffer stringBuffer = new StringBuffer();
    31             String line;
    32             while ((line = bufferedReader.readLine()) != null) {
    33                 stringBuffer.append(line);
    34             }
    35             // 实列化JSONArray对象
    36             jsonArray = new JSONArray(stringBuffer.toString());
    37 
    38         } catch (UnsupportedEncodingException e1) {
    39             e1.printStackTrace();
    40         } catch (IOException e) {
    41 
    42             e.printStackTrace();
    43         } catch (JSONException e) {
    44             e.printStackTrace();
    45         }
    46         listView.setAdapter(new ListViewAdapter(getApplicationContext(),
    47                 jsonArray));
    48     }
    49 
    50 }
     1 package com.example.android_json;
     2 
     3 import org.json.JSONArray;
     4 import org.json.JSONException;
     5 import org.json.JSONObject;
     6 
     7 import android.content.Context;
     8 import android.view.LayoutInflater;
     9 import android.view.View;
    10 import android.view.ViewGroup;
    11 import android.widget.BaseAdapter;
    12 import android.widget.TextView;
    13 
    14 public class ListViewAdapter extends BaseAdapter {
    15     LayoutInflater inflater;
    16     JSONArray jsonArray;
    17 
    18     public ListViewAdapter(Context context, JSONArray jsonArray) {
    19         this.jsonArray = jsonArray;
    20         inflater = LayoutInflater.from(context);
    21     }
    22 
    23     @Override
    24     public int getCount() {
    25         return jsonArray.length();
    26     }
    27 
    28     @Override
    29     public Object getItem(int position) {
    30         try {
    31             return jsonArray.get(position);
    32         } catch (JSONException e) {
    33             e.printStackTrace();
    34         }
    35         return null;
    36     }
    37 
    38     @Override
    39     public long getItemId(int position) {
    40         return position;
    41     }
    42 
    43     @Override
    44     public View getView(int position, View convertView, ViewGroup parent) {
    45         View v = inflater.inflate(R.layout.listview_item, null);
    46         TextView idTextView = (TextView) v.findViewById(R.id.item_id);
    47         TextView nameTextView = (TextView) v.findViewById(R.id.item_name);
    48         TextView sexTextView = (TextView) v.findViewById(R.id.item_sex);
    49 
    50         try {
    51             // 得到JSONObject
    52             JSONObject jsonObject = jsonArray.getJSONObject(position);
    53             // 得到映射的数据
    54             int id = jsonObject.getInt("id");
    55             String name = jsonObject.getString("name");
    56             String sex = jsonObject.getString("sex");
    57             // 赋值
    58             idTextView.setText(id + "");
    59             nameTextView.setText(name);
    60             sexTextView.setText(sex);
    61         } catch (JSONException e) {
    62             e.printStackTrace();
    63         }
    64         return v;
    65     }
    66 
    67 }
    1 [{"id":1,"name":"xiaosan","sex":"男"},{"id":2,"name":"xiaowu","sex":"女"}]
  • 相关阅读:
    PGsql 基本用户权限操作
    Node.js版本管理工具 nvm
    js 数字前面自动补零
    浮点数向偶数舍入的问题 Round-to-Even for Floating Point
    Linux 目录下属性查看操作
    C语言之Bit-wise Operation和Logical Operation
    (转)SqlBulkCopy批量复制数据
    (转)VS2010启动调试时老是提示正在下载公共符号
    转 SVN 在vs中的使用
    (转)关于 HTTP meta 的 IE=edge 说明
  • 原文地址:https://www.cnblogs.com/afluy/p/3383588.html
Copyright © 2011-2022 走看看