package com.jamin;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import android.content.Context;import android.content.res.Resources.NotFoundException;import android.database.sqlite.SQLiteDatabase;import android.os.Environment;public class DBManager {private final int BUFFER_SIZE = 400000;public static final String DB_NAME = "callattribution.db";public static final String PACKAGE_NAME = "com.jamin";public static final String DB_PATH = "/data"                    + Environment.getDataDirectory().getAbsolutePath() + "/"                    + PACKAGE_NAME;private SQLiteDatabase database;private Context context;DBManager(Context context){this.context = context;}public void openDatabase(){this.database = this.openDatabase(DB_PATH + "/" + DB_NAME);}public SQLiteDatabase openDatabase(String path){try {if(!(new File(path).exists())){InputStream is = this.context.getResources().openRawResource(R.raw.callattribution);//导入数据库FileOutputStream fos = new FileOutputStream(path);byte [] buffer = new byte[BUFFER_SIZE];int count = 0;while((count = is.read(buffer))>0){fos.write(buffer , 0 , count);}fos.close();is.close();}SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(path, null);return db;} catch (NotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}return null;}public void closeDatabase(){this.database.close();}}



package com.jamin;import android.app.Activity;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;public class CallAtributionActivity extends Activity implements OnClickListener{    /** Called when the activity is first created. */Button button;EditText et;TextView tv;public DBManager dbhelper;SQLiteDatabase sqldb;private static final String TAG = "jamin";    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                button = (Button) findViewById(R.id.button);        et = (EditText) findViewById(R.id.edittext);        tv = (TextView) findViewById(R.id.textview);        dbhelper = new DBManager(this);        dbhelper.openDatabase();        dbhelper.closeDatabase();        button.setOnClickListener(this);        sqldb = SQLiteDatabase.openOrCreateDatabase(DBManager.DB_PATH + "/" + DBManager.DB_NAME, null);            }public void onClick(View v) {// TODO Auto-generated method stubif(v == button){Log.d(TAG, "onClick");String searchstring = et.getText().toString();Cursor c = sqldb.rawQuery("select city from attribution where " +"num=" +Integer.parseInt(searchstring) , null);c.moveToFirst();tv.setText(c.getString(c.getColumnIndex("city")));}}    }


这个代码还存在很多BUG,只是演示如何使用导入的数据库,把DB文件放到res/raw下,然后通过DBManager 把数据库导入data/data/里



更多相关文章

  1. 导入的ANDROID 项目没有ANDROID的JAR包
  2. 导入的ANDROID 项目没有ANDROID的JAR包
  3. android 数据库操作 (非ContentProvider)
  4. Android(安卓)开发者从0到1发布一个微信小程序的采坑过程——使
  5. android基本的数据库创建和使用
  6. Android(安卓)SQLiteOpenHelper Sqlite数据库升级onUpgrade
  7. Android(安卓)Google Map应用开发详解
  8. Android导入第三方库出现问题
  9. Android(安卓)项目开发问题整理(持续更新)

随机推荐

  1. MySQL 数据查重、去重的实现语句
  2. Mysql复制表三种实现方法及grant解析
  3. Mysql临时表及分区表区别详解
  4. MySQL 如何修改root用户的密码
  5. 深入分析mysql为什么不推荐使用uuid或者
  6. MySQL之存储过程按月创建表的方法步骤
  7. 导致MySQL索引失效的一些常见写法总结
  8. 通过实例解析MySql CURRENT_TIMESTAMP函
  9. mysql主从复制配置过程
  10. mysql如何将表结构导出到excel