Android 读取appjson配置文件

1 Json配置文件放置于Android 项目assets 文件下

Android除了提供/res目录存放资源文件外,在/assets目录也会提供存放资源文件,在/assets目录下面不会在R.java里面自动生 成ID,所以读取assets目录下面的资源文件需要提供路径,我们可以通过AssetManager类来访问这些文件。  

 2 Activity中定义文件名称

private final static String fileName = "mainlistitems.json";//创建Thread 读取文件class DataThread extends Thread {@Overridepublic void run() {String jsonStr = AppJsonFileReader.getJson(getBaseContext(),fileName);data = AppJsonFileReader.setListData(jsonStr);dataHandler.sendMessage(dataHandler.obtainMessage());}}


 

AppJsonFileReader 类使用 AssetManager 读取文件如下,读取文本并解析存入Map

 

package com.jason.listviewoverview.util;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import android.content.Context;import android.content.res.AssetManager;public class AppJsonFileReader {public static String getJson(Context context, String fileName) {StringBuilder stringBuilder = new StringBuilder();try {AssetManager assetManager = context.getAssets();BufferedReader bf = new BufferedReader(new InputStreamReader(assetManager.open(fileName)));String line;while ((line = bf.readLine()) != null) {stringBuilder.append(line);}} catch (IOException e) {e.printStackTrace();}return stringBuilder.toString();}public static List> setData(String str) {try {List> data = new ArrayList>();JSONArray array = new JSONArray(str);int len = array.length();Map map;for (int i = 0; i < len; i++) {JSONObject object = array.getJSONObject(i);map = new HashMap();map.put("operator", object.getString("operator"));map.put("loginDate", object.getString("loginDate"));map.put("logoutDate", object.getString("logoutDate"));data.add(map);}return data;} catch (JSONException e) {e.printStackTrace();return null;}}public static List> setListData(String str) {List> data = new ArrayList>();try {JSONArray array = new JSONArray(str);int len = array.length();Map map;for (int i = 0; i < len; i++) {JSONObject object = array.getJSONObject(i);map = new HashMap();map.put("imageId", object.getString("imageId"));map.put("title", object.getString("title"));map.put("subTitle", object.getString("subTitle"));map.put("type", object.getString("type"));data.add(map);}} catch (JSONException e) {e.printStackTrace();}return data;}}

 

4 code 

https://github.com/jingshauizh/androidsummary/tree/master/ListViewOverView

 

更多相关文章

  1. Android入门教程(四)之------Android工程目录结构介绍
  2. Android(安卓)导入v7包常见错误
  3. 两种android app调用jar的方法
  4. Android(安卓)context 文件模式
  5. Android(安卓)如何在关于手机界面添加个图片
  6. Ubuntu Linux下安装JDK,Android(安卓)SDK,Android(安卓)Studio以
  7. Android(安卓)Studio 学习笔记(一)环境搭建、文件目录等相关说明
  8. Android(安卓)Studio 学习笔记(一)环境搭建、文件目录等相关说明
  9. NPM 和webpack 的基础使用

随机推荐

  1. Android中 AsyncTask和Handler对比(特别有
  2. Intent的简介以及属性详解
  3. DEPHI XE5 XE6 ANDROID IOS开发的几点体
  4. android微信api登录的接入
  5. 在用Kivy开发Python手机游戏时通过Plyer
  6. Android(安卓)ThreadPoolExecutor线程池
  7. android 对话框对于返回值的处理
  8. Android-APP启动优化
  9. Dagger2的化简学习总结
  10. Android(安卓)效率开发之图片---Glide 旋