如何读取sd下的json文件,并解析展示,添加到数据库中
来源:互联网 发布:战无不胜神兵进阶数据 编辑:程序博客网 时间:2024/06/05 14:52
//主界面
package com.example.test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.List;
import com.example.car.CAFCar;
import com.example.car.Car;
import com.example.open.CarOpenHelper;
import com.google.gson.Gson;
import android.app.Activity;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.os.Environment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
/**
* 定义主界面
* @author 浅议爱
* 先从sd卡中读取json文件
* 解析json文件
* 将解析的数据展示到界面上,并添加到数据库中
*
*/
public class MainActivity extends Activity {
//定义对象
private String pjson;
private List<Car> list_car;
private ListView mListView;
private SQLiteDatabase sd;
private CarOpenHelper mHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//实例化帮助类
mHelper=new CarOpenHelper(getApplicationContext(), "car.db", null, 1);
sd=mHelper.getReadableDatabase();
//获取控件id
mListView=(ListView) findViewById(R.id.mylistview);
//或得sdka下的json文件
intodata();
//进行解析
jsonParser();
//添加适配器
mListView.setAdapter(adapter);
}
/**
* 解析文件
*
*/
private void jsonParser() {
// TODO Auto-generated method stub
Gson gson=new Gson();
CAFCar cafcar=gson.fromJson(pjson, CAFCar.class);
list_car=cafcar.getData().getItems();
//便利集合
for(Car c:list_car){
//将数据添加到集合中
sd.execSQL("insert into car(id,name,price,brand)values(null,?,?,?)", new Object[]{c.getName(),c.getPrice(),c.getBrand()});
}
}
/**
* 查找sd下的文件
*/
private void intodata() {
//或得sd的路径
File path=Environment.getExternalStorageDirectory();
//获取状态
String state=Environment.getExternalStorageState();
//挂在状态
if (state.equals(Environment.MEDIA_MOUNTED)) {
//或得要解析的文件
File file=new File(path, "cardata.json");
//使用流读取
try {
FileInputStream fis=new FileInputStream(file);
//得到文件的大小
int size=fis.available();
byte[] buffer=new byte[size];
//读取文件
fis.read(buffer);
pjson=new String(buffer);
fis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 加载适配器
*/
BaseAdapter adapter=new BaseAdapter() {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Viewholder v;
if (convertView==null) {
v=new Viewholder();
convertView=LayoutInflater.from(getApplicationContext()).inflate(R.layout.list_item, null);
v.name=(TextView) convertView.findViewById(R.id.name);
v.price=(TextView) convertView.findViewById(R.id.price);
v.brand=(TextView) convertView.findViewById(R.id.brand);
v.image=(ImageView) convertView.findViewById(R.id.image);
convertView.setTag(v);
}else {
v=(Viewholder) convertView.getTag();
}
v.name.setText(list_car.get(position).getName());
v.brand.setText(list_car.get(position).getBrand());
v.price.setText(list_car.get(position).getPrice()+"");
v.image.setImageResource(R.drawable.ic_launcher);
return convertView;
}
class Viewholder{
TextView name,price,brand;
ImageView image;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return list_car.get(position);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return list_car.size();
}
};
}
- 如何读取sd下的json文件,并解析展示,添加到数据库中
- 如何解析sd中的xml文件,并展示
- 如何解析assets目录下的xml文件,,并展示
- 如何使用contentrsolver读取系统中的联系人,并添加到sd中
- DOM解析XML文件并添加到数据库中
- C#遍历某文件夹下的所有文件,读取文件并插入到数据库中
- Android读取SD卡文件并显示到textview中
- Pull解析, 并添加到数据库中
- 关于iOS中将json格式存到文件中并读取解析成字典
- 如何读取一个本地Json文件并查询该文件展示其内容
- 读取WEB-INF下的日志文件并添加到集合(windows和linux环境通用)
- 安卓使用FastJson解析Json数据并展示到ListView中
- 如何把字符串写入SD卡文件中,如何读取SD卡文件的数据
- cocos2d-x读取并解析json文件的方法[CSJson]
- 解析网络json数据并展示到ListView上
- Android读取csv文件并写到数据库中
- Asp 中如何读取并解析 .msg 文件?
- 用java读取同级目录下所有excle文件并转成json格式写到txt文档中
- php编译参数详解
- Android Volley完全解析(一),初识Volley的基本用法
- mysql 中对记录随机排序
- eclipse启动时报错,显示查看log日志,解决最佳方案
- poj1258——Agri-Net(最小生成树)
- 如何读取sd下的json文件,并解析展示,添加到数据库中
- ReSharper 配置及用法
- 愚人节开启自己学习安卓的博客生涯,记录自己学习过程中遇到的问题
- 同步、异步、阻塞和非阻塞区别
- 对最强大的android下拉刷新空间ultra-pull-to-refresh的理解
- Oracle Study之-AIX6.1构建Oracle 10gR2 RAC(5)
- 欢迎使用CSDN-markdown编辑器
- oninput,onpropertychange,onchange的用法和区别
- java5 Condition用法--实现线程间的通信