• Json文件放入Assets文件,读取解析并且放入listview中显示。


      1 package com.lixu.TestJson;
      2 
      3 import android.app.Activity;
      4 import android.content.Context;
      5 import android.content.res.AssetManager;
      6 import android.os.Bundle;
      7 import android.view.LayoutInflater;
      8 import android.view.View;
      9 import android.view.ViewGroup;
     10 import android.widget.BaseAdapter;
     11 import android.widget.ListView;
     12 import android.widget.TextView;
     13 import android.widget.Toast;
     14 
     15 import org.json.JSONArray;
     16 import org.json.JSONException;
     17 import org.json.JSONObject;
     18 import java.io.BufferedReader;
     19 import java.io.IOException;
     20 import java.io.InputStream;
     21 import java.io.InputStreamReader;
     22 import java.util.ArrayList;
     23 import java.util.List;
     24 
     25 public class MainActivity extends Activity {
     26     private ListView mListView;
     27 
     28     @Override
     29     protected void onCreate(Bundle savedInstanceState) {
     30         super.onCreate(savedInstanceState);
     31         setContentView(R.layout.activity_main);
     32         // 第一步实例化控件
     33         mListView = (ListView) findViewById(R.id.list);
     34 
     35         // 第二步数据源
     36         List<Book> bookList = getBooks();
     37 
     38         MyBooksAdapter adapter = new MyBooksAdapter(this);
     39         // 使用适配器中的方法将数据设置进去
     40         adapter.setBookList(bookList);
     41         mListView.setAdapter(adapter);
     42 
     43     }
     44 
     45     // 第三步适配器
     46     public class MyBooksAdapter extends BaseAdapter {
     47         private List<Book> bookList = new ArrayList<Book>();
     48         private LayoutInflater mLayoutInflater;
     49 
     50         public MyBooksAdapter(Context context) {
     51             mLayoutInflater = LayoutInflater.from(context);
     52         }
     53 
     54         // 添加这个方法,便于外部传递数据源进来
     55         public void setBookList(List<Book> bookList) {
     56             this.bookList = bookList;
     57             notifyDataSetChanged();
     58         }
     59 
     60         @Override
     61         public int getCount() {
     62             return bookList.size();
     63         }
     64 
     65         @Override
     66         public Object getItem(int i) {
     67             return bookList.get(i);
     68         }
     69 
     70         @Override
     71         public long getItemId(int i) {
     72             return i;
     73         }
     74 
     75         @Override
     76         public View getView(int i, View view, ViewGroup viewGroup) {
     77             if (view == null) {
     78                 view = mLayoutInflater.inflate(android.R.layout.simple_list_item_1, null);
     79             }
     80             TextView textView = (TextView) view;
     81 
     82             Book book = (Book) getItem(i);
     83             textView.setText(book.getId() + "  " + book.getName());
     84 
     85             Toast.makeText(getApplicationContext(), book.getId() + "  " + book.getName(), 1).show();
     86 
     87             return view;
     88         }
     89     }
     90 
     91     public List<Book> getBooks() {
     92         // 从Asset文件中找到文件,获取json字符串
     93         AssetManager assetManager = this.getAssets();
     94         InputStream inputStream = null;
     95         List<Book> bookList = new ArrayList<Book>();
     96         try {
     97             inputStream = assetManager.open("myjson.json");
     98             String jsonStr = readInPutStream(inputStream);
     99             // 解析jason
    100             JSONObject jsonObjectRoot = null;
    101             jsonObjectRoot = new JSONObject(jsonStr);
    102             JSONArray jsonArray = jsonObjectRoot.getJSONArray("books");
    103             int length = jsonArray.length();
    104             for (int i = 0; i < length; i++) {
    105                 JSONObject jsonObject = jsonArray.getJSONObject(i);
    106                 JSONObject jsonBook = jsonObject.getJSONObject("book");
    107                 String bookName = jsonBook.getString("name");
    108                 int bookId = jsonBook.getInt("id");
    109 
    110                 Book book = new Book();
    111                 book.setId(bookId);
    112                 book.setName(bookName);
    113                 bookList.add(book);
    114             }
    115         } catch (JSONException e) {
    116             e.printStackTrace();
    117         } catch (IOException e) {
    118             e.printStackTrace();
    119         }
    120         return bookList;
    121 
    122     }
    123 
    124     // 从字节流中读取数据转换为String字符串
    125     public String readInPutStream(InputStream inputStream) {
    126         BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
    127         String line = "";
    128         StringBuilder stringBuilder = new StringBuilder();
    129         try {
    130             while ((line = reader.readLine()) != null) {
    131                 stringBuilder.append(line);
    132             }
    133         } catch (IOException e) {
    134             e.printStackTrace();
    135         } finally {
    136             if (reader != null) {
    137                 try {
    138                     reader.close();
    139                 } catch (IOException e) {
    140                     e.printStackTrace();
    141                 }
    142             }
    143         }
    144 
    145         return stringBuilder.toString();
    146     }
    147 }
     1 package com.lixu.TestJson;
     2 import java.io.Serializable;
     3 
     4 /**
     5  * Created by Administrator on 2015/12/31.
     6  */
     7 public class Book implements Serializable{
     8     private int id;
     9     private String name;
    10 
    11     public Book() {
    12 
    13     }
    14 
    15     public Book(int id, String name) {
    16         this.id = id;
    17         this.name = name;
    18     }
    19 
    20     public String getName() {
    21         return name;
    22     }
    23 
    24     public void setName(String name) {
    25         this.name = name;
    26     }
    27 
    28     public int getId() {
    29         return id;
    30     }
    31 
    32     public void setId(int id) {
    33         this.id = id;
    34     }
    35 
    36 
    37 }
     1 package com.lixu.TestJson;
     2 
     3 import java.util.List;
     4 
     5 /**
     6  * Created by Administrator on 2015/12/31.
     7  */
     8 public class BookInfo {
     9     
    10     private List<BookResult> books;
    11     
    12     public List<BookResult> getBooks() {
    13         return books;
    14     }
    15 
    16     public void setBooks(List<BookResult> books) {
    17         this.books = books;
    18     }
    19 
    20 
    21 
    22 }
     1 package com.lixu.TestJson;
     2 
     3 /**
     4  * Created by Administrator on 2015/12/31.
     5  */
     6 public class BookResult {
     7     private Book book;
     8 
     9     public Book getBook() {
    10         return book;
    11     }
    12 
    13     public void setBook(Book book) {
    14         this.book = book;
    15     }
    16 
    17 }
  • 相关阅读:
    margin负值的应用
    css书写顺序和常用命名推荐
    CSS Hack代码与浏览兼容总结
    高效css选择符
    高级css选择器
    css透明背景兼容方案
    height设置100%不起作用
    deepin安装Motrix,cocomusic
    linux关闭ipv6
    关于text-align无法居中的问题
  • 原文地址:https://www.cnblogs.com/labixiaoxin/p/5091962.html
Copyright © 2020-2023  润新知