android和ios的数据库都是用SQLite来实现.
一,SQLite数据库简介:
轻量级:SQLite数据库是一个轻量级的数据库,适用于少量数据的CURD;
文件本质:SQLite数据库支持大部分SQL语法,允许使用SQL语句操作数据库,其本质是一个文件,不需要安装启动。
数据读写:SQLite数据库打开只是一个文件的读写流。
二.简单的数据库语句知识
在android平台上,集成了一个嵌入式关系型数据库—SQLite,SQLite3支持NULL,INTEGER,REAL(浮点数字),TEXT(字符串文本)和BLOB(二进制对象)数据类型,实际上sqlite3也接受varchar(n),char(n),decimal(p,s)等数据类型,只不过在运算或保存时会转成对应的五种数据类型.
SQLite最大的特点是你可以把各种类型的数据保存到任何字段中,而不用关心字段声明的数据类型是什么。
今天我就用一个简单的列子来说明来实现SQLite。
import java.util.ArrayList;
import java.util.Iterator;
import com.hucc.huccgps.R;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
private static final String TAG = "JGPS/MainActivity";
private TextView mAdd_white = null;
private ListView mWhiteListView = null;
private Context mContext = null;
private int mPosition;
private DBHelper mDBHelper = null;
private WhiteListAdapter mAdapter = null;
private ArrayList<Item> mWhiteListItem = new ArrayList<Item>();
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.d("JGPS/Start", "onCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.relative_main);
this.mDBHelper = new DBHelper(this);
this.mContext = this;
this.mWhiteListItem = new ArrayList<Item>();
this.mWhiteListView = (ListView)findViewById(R.id.list_view);
initData();
this.mWhiteListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> paramAdapterView, View paramView,
int paramInt, long paramLong) {
Log.d("JGPS/MainActivity", ""+paramInt);
MainActivity.this.updateWhiteList((Item)MainActivity.this.mWhiteListItem.get(paramInt));
}
});
if (this.mAdd_white == null)
return;
mAdd_white.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
MainActivity.this.addContactList();
}
});
Log.d("JGPS/end", "onCreate");
}
private void initData() {
this.mWhiteListItem = this.mDBHelper.getRelativesList();
if (this.mWhiteListItem.size() != 3) {
for (int i = 1; i < 4; i++) {
Log.d("JGPS/MainActivity", "initData,id=" + i);
Item localItem1 = new Item();
localItem1.setName("");
localItem1.setNumber("");
addItemToList(localItem1);
updateSetting(i,"");
}
this.mWhiteListItem = this.mDBHelper.getRelativesList();
}
Iterator localIterator = this.mWhiteListItem.iterator();
while (localIterator.hasNext()) {
Item localItem2 = (Item) localIterator.next();
Log.d("JGPS/MainActivity", "initData,id=" + localItem2.getId() + ",name = " + localItem2.getName() + ",number=" + localItem2.getNumber());
}
this.mAdapter = new WhiteListAdapter(this, this.mWhiteListItem);
this.mWhiteListView.setAdapter(mAdapter);
}
private void updateSetting(int id, String phoneNum) {
switch (id) {
case 1:
putSting("phone_num1",phoneNum);
break;
case 2:
putSting("phone_num2",phoneNum);
break;
case 3:
putSting("phone_num3",phoneNum);
break;
default:
Log.d("JGPS/MainActivity", "Wrong relative number id");
}
}
private void putSting(String paramString1, String paramString2) {
SharedPreferences.Editor localEditor = getSharedPreferences("sos_config", 0).edit();
localEditor.putString(paramString1, paramString2);
localEditor.apply();
}
protected void updateWhiteList(Item paramItem) {
final Item item = paramItem;
Log.d("JGPS/MainActivity", "updateWhiteList------" + item.getId());
final Dialog localDialog = new Dialog(this, R.style.dialog);
localDialog.show();
Window localWindow = localDialog.getWindow();
localWindow.setContentView(R.layout.dialog_editor);
Button localButton1 = (Button) localWindow.findViewById(R.id.btn_ok);
Button localButton2 = (Button) localWindow.findViewById(R.id.btn_cancel);
final EditText phone = (EditText)localWindow.findViewById(R.id.phone);
final EditText name = (EditText)localWindow.findViewById(R.id.name);
name.setText(item.getName());
phone.setText(item.getNumber());
((TextView)localWindow.findViewById(R.id.title)).setText(R.string.edit_white);
localButton1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View paramView) {
if (phone.getText().toString().trim().length() == 0) {
Toast.makeText(mContext, R.string.toast_tel, 2000).show();
return;
}
if (name.getText().toString().trim().length() == 0) {
Toast.makeText(mContext, R.string.name_null, 2000).show();
return;
}
MainActivity.this.updateContactInDB(item.getId(), name.getText().toString(), phone.getText().toString());
int id = Integer.parseInt(item.getId());
updateSetting(id, phone.getText().toString());
Toast.makeText(mContext, R.string.edit_success, 2000).show();
localDialog.cancel();
}
});
localButton2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View paramView) {
localDialog.cancel();
}
});
}
protected void updateContactInDB(String paramString1, String paramString2, String paramString3) {
Item localItem = new Item();
localItem.setId(paramString1);
localItem.setName(paramString2);
localItem.setNumber(paramString3);
updateItemList(localItem);
}
private void updateItemList(Item paramItem) {
Item localItem2;
Iterator localIterator1 = this.mWhiteListItem.iterator();
while (localIterator1.hasNext()) {
localItem2 = (Item) localIterator1.next();
if (localItem2.getId().equals(paramItem.getId())) {
localItem2.setName(paramItem.getN