編輯:高級開發
Java代碼
package it.service;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
/**
*
* 數據庫版本控制類
* SQLiteOpenHelper是一個數據庫版本的控制超類
*
*/
public class MangerDatabase extends SQLiteOpenHelper {
private static final String name="shool";
private static final int version=2;
/**
*
* @param context 上下文信息
* @param name 數據庫名稱
* @param CursorFactory factory 游標工廠
* @param version 數據庫版本
* 執行數據參數的初始化工作
*/
public MangerDatabase(Context context) {
//調用超類的構造方法
super(context, name, null, version);
}
/**
* 如果沒有數據庫中沒有此表 就創建表結構 覆寫超類的創建的方法
* 這個方法在超類中是一個只有方法體沒有實現體的
* onCreate 創建方法 在用戶執行調用獲取用戶數據庫管理時例就已經執行
* 此方法是超類存在的 並且由 getWritableDatabase()這個方法調用的
*/
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE person (personid integer primary key autoincrement, name varchar(20), age INTEGER,xxx INTEGER)");
}
/**
* 執行更新 如果表存在 將執行更新操作
* oldVersion 老版本號
* newVersio 新版本號
* onUpgrade 創建方法 在用戶執行調用獲取用戶數據庫管理時例就已經執行
* 此方法是超類存在的 並且由 getWritableDatabase()這個方法調用的
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//先刪除
db.execSQL("DROP TABLE IF EXISTS person");//
android:layout_height="wrap_content"
android:textSize="20px"
android:id="@+id/personid"
/>
< p>
android:layout_width="150px"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/personid"
android:layout_alignTop="@id/personid"
android:gravity="center_horizontal"
android:textSize="20px"
android:id="@+id/name"
/>
< p>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@id/name"
android:layout_toRightOf="@id/name"
android:gravity="right"
android:textSize="20px"
android:id="@+id/age"
android:layout_height="wrap_content"
android:textSize="20px"
android:id="@+id/personid"
/>
< p>
android:layout_width="150px"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/personid"
android:layout_alignTop="@id/personid"
android:gravity="center_horizontal"
android:textSize="20px"
android:id="@+id/name"
/>
< p>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@id/name"
android:layout_toRightOf="@id/name"
android:gravity="right"
android:textSize="20px"
android:id="@+id/age"
/>
7 視圖界面主文件 2
XML代碼
< XMLns:android="http://schemas.android.com/apk/res/android">
android:orIEntation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
< p>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/listvIEw"
/>
< XMLns:android="http://schemas.android.com/apk/res/android">
android:orIEntation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
< p>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
接上頁
android:id="@+id/listvIEw"
/>
8 業務bean
Java代碼
package it.bean;
/**
*
* 數據庫的實體類
*
*/
public class Person {
private Integer personId;
private String name;
private Short age;
public Person() {
}
public Person(Integer personId, String name, Short age) {
this.personId = personId;
this.name = name;
this.age = age;
}
public Person(String name, Short age) {
this.name=name;
this.age=age;
}
public Integer getPersonId() {
return personId;
}
public void setPersonId(Integer personId) {
this.personId = personId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Short getAge() {
return age;
}
public void setAge(Short age) {
this.age = age;
}
@Override
public String toString() {
return "Person [personId=" + personId + ", name=" + name + ", age="
+ age + "]";
}
}
package it.bean;
/**
*
* 數據庫的實體類
*
*/
public class Person {
private Integer personId;
private String name;
private Short age;
public Person() {
}
public Person(Integer personId, String name, Short age) {
this.personId = personId;
this.name = name;
this.age = age;
}
public Person(String name, Short age) {
this.name=name;
this.age=age;
接上頁
}
public Integer getPersonId() {
return personId;
}
public void setPersonId(Integer personId) {
this.personId = personId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Short getAge() {
return age;
}
public void setAge(Short age) {
this.age = age;
}
@Override
public String toString() {
return "Person [personId=" + personId + ", name=" + name + ", age="
+ age + "]";
}
}
9 主應用 Activity
Java代碼
package it.date;
import it.bean.Person;
import it.service.PersonService;
import Java.util.ArrayList;
import Java.util.HashMap;
import Java.util.List;
import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.util.Log;
import android.view.VIEw;
import android.widget.AdapterVIEw;
import android.widget.AdapterVIEw.OnItemClickListener;
import android.widget.ListVIEw;
import android.widget.SimpleAdapter;
import android.widget.SimpleCursorAdapter;
import android.widget.Toast;
public class DataActivity extends Activity {
private static final String TAG="DataActivity";
private ListView listvIEw;
private PersonService personservice;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentVIEw(R.layout.main);
//獲取ListVIEw
listview=(ListView)this.findViewById(R.id.listvIEw);
//獲取數據庫德數據
接上頁
personservice=new PersonService(this);
/**
*方法一 SimpleAdapter 適配器 綁定的參數數據是list對象 比較?嗦
*/
List persons=personservice.getdatePerson(9, 20);
//綁定數據 設置適配器
List> list=new ArrayList>();
/**
* 適配器有 ArrayAdapter T 可以是String Integer
* SimpleAdapter,SimpleCursorAdapter
*/
HashMap hs=new HashMap();
hs.put("personid", "編號");
hs.put("name", "名稱");
hs.put("age", "年齡");
list.add(hs);
for(Person person:persons){
HashMap map=new HashMap();
map.put("personid", String.valueOf(person.getPersonId()));
map.put("name", person.getName());
map.put("age", String.valueOf(person.getAge()));
list.add(map);
}
/**
* 定義一個適配器 參數一 上下文信息 當前的上下文信息 是當前的類
* 參數二 加載的值
* 參數三 加載的視圖界面文件
* 參數四 加載的目錄 這個目錄 是根據鍵值去取的值 在上面已經設置好了這個鍵值對
* 參數五 加載的數據對應的屬性
*/
SimpleAdapter adapter=new SimpleAdapter(DataActivity.this, list, R.layout.person,new String[]{"personid",
"name","age"}, new int[]{R.id.personid,R.id.name,R.id.age});
//給這個ListVIEw設置初始的適配器
listvIEw.setAdapter(adapter);
// 為ListVIEw添加事件
listvIEw.setOnItemClickListener(new OnItemClickListener() {
/**
* 參數一 表示 點擊的 listvIEw
* 參數二 表示點擊的最外層的那個元素
* 說明 int position, long id 是所在行的id
*/
@Override
public void onItemClick(AdapterView parent, View vIEw,
int position, long id) {
ListView listView = (ListVIEw)parent;
//獲取所在行的數據 position和id都表示選擇的item數據
接上頁
HashMap itemData = (HashMap)listVIEw.getItemAtPosition(position);
String personid = itemData.get("personid");
String name = itemData.get("name");
String age = itemData.get("age");
//輸出 01-17 14:54:47.919: INFO/DataActivity(9280):
//className=android.widget.RelativeLayout
Log.i(TAG, "className="+ vIEw.getClass().getName());
Log.i(TAG, "personid="+ personid+ "name="+name + "age"+ age);
Log.i(TAG, "result="+ (position==id)); //trues
Log.i(TAG, "id="+id);
Log.i("TAG", "position="+position);
Toast.makeText(DataActivity.this, name.toString(),
1).show();
}
});
/**
* 方法二 獲取 值
* 推薦使用方法二去設置適配器 獲取數據的值 這樣會更合理
* 綁定的數據是游標形式 但是主鍵id 必須以_id命名 如果不是 可以在查詢數據的時候設置別名 並且綁定的參數必須是_id
* 否則會報異常信息
*/
// Cursor cursor = personservice.getdateRawPerson(0, 10);
/**
* 參數一 上下文信息
* 參數二 加載的視圖界面文件
* 參數三 游標數據
* 參數四 數據目錄
* 參數五 對應的數據值對應的id
* 表示把參數五對應的字段 參數四綁定起來
* 注意 列名 必須指定為_id 如果你的數據的主鍵id 不是以_id命名 必須在查詢的時候 指定 別名為_id 否則會報異常信息
*/
// SimpleCursorAdapter ada = new SimpleCursorAdapter(this, R.layout.person, cursor,
// new String[]{"_id", "name", "age"}, new int[]{R.id.personid, R.id.name, R.id.age});
//綁定適配器
// listvIEw.setAdapter(ada);
}
}
package it.date;
import it.bean.Person;
import it.service.PersonService;
import Java.util.ArrayList;
import Java.util.HashMap;
import Java.util.List;
import android.app.Activity;
接上頁
import android.database.Cursor;
import android.os.Bundle;
import android.util.Log;
import android.view.VIEw;
import android.widget.AdapterVIEw;
import android.widget.AdapterVIEw.OnItemClickListener;
import android.widget.ListVIEw;
import android.widget.SimpleAdapter;
import android.widget.SimpleCursorAdapter;
import android.widget.Toast;
public class DataActivity extends Activity {
private static final String TAG="DataActivity";
private ListView listvIEw;
private PersonService personservice;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentVIEw(R.layout.main);
//獲取ListVIEw
listview=(ListView)this.findViewById(R.id.listvIEw);
//獲取數據庫德數據
personservice=new PersonService(this);
/**
*方法一 SimpleAdapter 適配器 綁定的參數數據是list對象 比較?嗦
*/
List persons=personservice.getdatePerson(9, 20);
//綁定數據 設置適配器
List> list=new ArrayList>();
/**
* 適配器有 ArrayAdapter T 可以是String Integer
* SimpleAdapter,SimpleCursorAdapter
*/
HashMap hs=new HashMap();
hs.put("personid", "編號");
hs.put("name", "名稱");
hs.put("age", "年齡");
list.add(hs);
for(Person person:persons){
HashMap map=new HashMap();
map.put("personid", String.valueOf(person.getPersonId()));
map.put("name", person.getName());
map.put("age", String.valueOf(person.getAge()));
list.add(map);
}
/**
* 定義一個適配器 參數一 上下文信息 當前的上下文信息 是當前的類
* 參數二 加載的值
* 參數三 加載的視圖界面文件
接上頁
* 參數四 加載的目錄 這個目錄 是根據鍵值去取的值 在上面已經設置好了這個鍵值對
* 參數五 加載的數據對應的屬性
*/
SimpleAdapter adapter=new SimpleAdapter(DataActivity.this, list, R.layout.person,new String[]{"personid",
"name","age"}, new int[]{R.id.personid,R.id.name,R.id.age});
//給這個ListVIEw設置初始的適配器
listvIEw.setAdapter(adapter);
// 為ListVIEw添加事件
listvIEw.setOnItemClickListener(new OnItemClickListener() {
/**
* 參數一 表示 點擊的 listvIEw
* 參數二 表示點擊的最外層的那個元素
* 說明 int position, long id 是所在行的id
*/
@Override
public void onItemClick(AdapterView parent, View vIEw,
int position, long id) {
ListView listView = (ListVIEw)parent;
//獲取所在行的數據 position和id都表示選擇的item數據
HashMap itemData = (HashMap)listVIEw.getItemAtPosition(position);
String personid = itemData.get("personid");
String name = itemData.get("name");
String age = itemData.get("age");
//輸出 01-17 14:54:47.919: INFO/DataActivity(9280):
//className=android.widget.RelativeLayout
Log.i(TAG, "className="+ vIEw.getClass().getName());
Log.i(TAG, "personid="+ personid+ "name="+name + "age"+ age);
Log.i(TAG, "result="+ (position==id)); //trues
Log.i(TAG, "id="+id);
Log.i("TAG", "position="+position);
Toast.makeText(DataActivity.this, name.toString(),
1).show();
}
});
/**
* 方法二 獲取 值
* 推薦使用方法二去設置適配器 獲取數據的值 這樣會更合理
* 綁定的數據是游標形式 但是主鍵id 必須以_id命名 如果不是 可以在查詢數據的時候設置別名 並且綁定的參數必須是_id
* 否則會報異常信息
*/
// Cursor cursor = personservice.getdateRawPerson(0, 10);
接上頁
/**
* 參數一 上下文信息
* 參數二 加載的視圖界面文件
* 參數三 游標數據
* 參數四 數據目錄
* 參數五 對應的數據值對應的id
* 表示把參數五對應的字段 參數四綁定起來
* 注意 列名 必須指定為_id 如果你的數據的主鍵id 不是以_id命名 必須在查詢的時候 指定 別名為_id 否則會報異常信息
*/
// SimpleCursorAdapter ada = new SimpleCursorAdapter(this, R.layout.person, cursor,
// new String[]{"_id", "name", "age"}, new int[]{R.id.personid, R.id.name, R.id.age});
//綁定適配器
// listvIEw.setAdapter(ada);
}
}
ok 到這裡就全部結束了 大家只要看懂了源代碼 就完全明白了sqlite這種嵌入式的sql了
Google推出的android應用手機通過與運營商、設備制造商、開發商和其他有關各方結成深層次的合作伙伴關系,但同顯而易見的,是手機具有便攜性,24小時隨身相伴性和及
上周,谷歌宣布將不會把android 3.0發布到開源社區,而android 3.1計劃很可能在今年造成轟動。android 3.1 Steve Jobs(史蒂夫·喬布
android是基於Linux內核的軟件平台和操作系統,早期由Google開發,下面介紹有關android命令的問題,希望大家看完本文章後,能夠找到自己想要的信息。每個
-left: auto; margin-right: auto; src=/School/UploadFiles_7810/201203/201203232226385