我刚刚开始接触Android平台,想做一个基于Android平台的app。以下问题很基础,请耐心回复,谢谢!在windows 7 上已经安装好了Android Studio,首先就是建一个数据库。1. 请问Android Studio本身自带SQLite数据库还是需要自己创建?如果自己创建是在我的App项目里创建(创建类是否会每次运行App时都会创建数据库?)、专门创建一个App去创建数据库SQLite(因为一次创建数据库,以后就是打开操作了)、还是在一个数据库操作平台上创建?以前在C#-SQL Server的编写时,事前在SQL Server数据库的操作平台上建好数据库,导入选项性和浏览性数据,然后在C#中写好访问数据库的类等。但在Android Studio中不知道怎么个概念。2. SQLite建成以后,导入选项性和浏览性数据通过什么方式导入?谢谢!

解决方案 »

  1.   

    1 SQLite数据库 在模拟器 或者真机上, 数据库要自己建。 
       可以用 SQLiteHelper类2 数据库操作 , 导入和读写, 可以自己写代码
      

  2.   

    我还是不懂。 SQLiteHelper类是要放在哪个App里?是专门创建个App去建数据库吗?导入数据的代码同样的问题,应该写在哪里?
      

  3.   

    帖段代码给你参考一下 , 用来保存APP的一些设置值
    HDSetupInfo.java
    package com.huading.hdshop;/**
     * Created by xie on 2017/7/18.
     */import android.content.ContentValues;
    import android.content.Context;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    import android.util.Log;public class HDSetupInfo extends SQLiteOpenHelper {
        private final static String DATABASE_NAME = "Library";
        private final static int DATABASE_VERSION = 1;
        private final static String TABLE_NAME = "Hdsetup";
        //构造函数,创建数据库
        public HDSetupInfo(Context context) {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
        }    //建表
        public void onCreate(SQLiteDatabase db) {
            String sql = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME
                    + "(_id INTEGER PRIMARY KEY  autoincrement,"
                    + " hdkey VARCHAR(30)  NOT NULL,"
                    + " hdval VARCHAR(30))";
            db.execSQL(sql);
        }
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            String sql = "DROP TABLE IF EXISTS " + TABLE_NAME;
            db.execSQL(sql);
            onCreate(db);
        }    //获取游标
        public Cursor select() {
            SQLiteDatabase db = this.getReadableDatabase();
            Cursor cursor = db.query(TABLE_NAME, null, null, null, null, null, null);
            return cursor;
        }    //建立设置值
        public long insert(String hdkey,String hdvalue ) {
            SQLiteDatabase db = this.getWritableDatabase();
            ContentValues cv = new ContentValues();
            cv.put("hdkey", hdkey);
            cv.put("hdval", hdvalue);
            long row = db.insert(TABLE_NAME, null, cv);
            return row;
        }    //查询设置值
        public Cursor query(String[] args) {
            SQLiteDatabase db = this.getReadableDatabase();
            Cursor cursor = db.rawQuery("SELECT * FROM "+TABLE_NAME+" WHERE hdkey = ?", args);
            return cursor;
        }    //更新设置值
        public void update(String hdkey,String hdvalue) {
            SQLiteDatabase db = this.getWritableDatabase();
            String where = " hdkey = ?";
            String[] whereValue = { hdkey };
            ContentValues cv = new ContentValues();
            cv.put("hdval", hdvalue);
            db.update(TABLE_NAME, cv, where, whereValue);
        }    //设置KEY
        public void SetKey(String hdkey,String hdvalue){
            String et=hdkey;
            String args[]=new String[]{et};
            Cursor cursor=this.query(args);
            if(cursor.getCount()>0){
                this.update(hdkey,hdvalue);
            }else{
                this.insert(hdkey,hdvalue);
            }
        }
        //读取KEY
        public String GetKey(String hdkey){
            String args[]=new String[]{hdkey};
            Cursor cursor=this.query(args);
            if(cursor.getCount()==1) {
                cursor.moveToFirst();
                return cursor.getString(2);
            }else{
                return "";
            }
        }}
    某个页面的用法 , 保存值
    HDSetupInfo hd1  = new HDSetupInfo(this);
                    if(checkSaveLogin.isChecked()){
                        hd1.SetKey("SaveLogin","1");
                        hd1.SetKey("SaveAccount",mu);
                    }
    取值HDSetupInfo hd1  = new HDSetupInfo(this);
            String s1 = hd1.GetKey("SaveLogin");
            if(s1.equals("1")){
                String s2 = hd1.GetKey("SaveAccount");
                Set_Login_M(s1,s2);
            }
      

  4.   

    你这是还没看呢就问了,稍稍看一下基本使用就没有这些问题了。看了这个再看litepal,新世界的大门。
      

  5.   

    每个APP的数据库是相互独立的,使用前都要自己建,自己的app也可以建多个数据库,具体建的api查相关文档就可以了。别人的app的数据包括数据库你都是不能访问的,除非人家主动提供。我觉得可能是与之前你用的MySQL对比有些概念搞混了,或许你可以这样认为,每个app都装有自己的一个mysql,然后数据库要自己建,跟别人app装的mysql没有什么关系,你也访问不到,不知道这样理解可以帮到你么,我也是个初学者