android技术之SQLite技术详解

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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值