我刚刚开始接触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建成以后,导入选项性和浏览性数据通过什么方式导入?谢谢!
解决方案 »
- 实现Android 更新UI组件并延迟3秒 遇到的问题,求解答!
- Android来电界面的控制
- editText控件无法获取当前输入的字符串的问题。
- 调用Google maps的routes功能
- 如何为Android的ImageView和GrilView设置透明背景色
- 编译android源码时碰到如下错误,哪位知道如何解决么?
- webview中js调用java的问题
- android progressBar的颜色设置,要根据进度来设置不同的颜色。
- android 4.4 webview 图片如何自适应 之前的方法失效了~
- 关于图片处理的Bug,有些难度,请大神们指点:)
- APK在手机可以运行 在各大主流模拟器都暂停服务..有能解的么
- Android活动间的跳转报空指针
可以用 SQLiteHelper类2 数据库操作 , 导入和读写, 可以自己写代码
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);
}