Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
°²×¿µÚËÄÌì±Ê¼Ç-Sqlite
 
×÷ÕߣºÉ­ÁÖÉ­ À´×ÔÓÚ£º²©¿ÍÔ° ·¢²¼ÓÚ 2016-3-16
  2220  次浏览      27
 

1.Êý¾Ý¿âµÄ´´½¨ÔËÐÐÓë¸üÐÂ

1.1.´´½¨Ò»¸öÀà¼Ì³ÐSqliteOpenHelper

1.2.´´½¨¹¹Ôì·½·¨

/**

* Êý¾Ý¿â´´½¨Àà

public class DbSqliteOpenHelper extends SQLiteOpenHelper {

* @param context ÉÏÏÂÎÄ

* @param name Êý¾Ý¿âµÄÃû×ÖÈç: students.db

* @param factory Óα깤³§ ,ÀàËÆJDBCÖеÄResultSetÖеÄhasNext();

* @param version Êý¾Ý¿âµÄ°æ±¾

public DbSqliteOpenHelper(Context context, String name,

CursorFactory factory, int version) {

super(context, name, factory, version);

}

* µ±Êý¾Ý¿â±»´´½¨Ê±,Ö´ÐÐ,

* Ö»»áÖ´ÐÐÒ»´Î

@Override

public void onCreate(SQLiteDatabase db) {

* µ±Êý¾Ý°æ±¾Éý¼¶Ê±Ö´ÐÐ,

* Êý¾Ý°æ±¾Ö»ÄÜÉý²»Äܽµ ´Ó1¿ªÊ¼

* ÕâÀï³£ÓÃÓÚ¸ü¸ÄÊý¾Ý¿âÖеıíµÄ½á¹¹,ÈçÌí¼ÓÁÐ,ɾ³ýÁÐ,Ö®ÀàµÄ,´´½¨Ðµıí

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}

}

1.3.¸ü¸Ä¹¹Ôì·½·¨

/**

* @param context ÉÏÏÂÎÄ

* @param name Êý¾Ý¿âµÄÃû×ÖÈç: students.db

* @param factory Óα깤³§ ,ÀàËÆJDBCÖеÄResultSetÖеÄhasNext();

* @param version Êý¾Ý¿âµÄ°æ±¾

public DbSqliteOpenHelper(Context context) {

super(context, "student.db", null, 1);

}

¸ü¸Äºó

* @param context ÉÏÏÂÎÄ

* @param name Êý¾Ý¿âµÄÃû×ÖÈç: students.db

* @param factory Óα깤³§ ,ÀàËÆJDBCÖеÄResultSetÖеÄhasNext();

* @param version Êý¾Ý¿âµÄ°æ±¾ ÕâÀïµÄ°æ±¾±ØÐë´óÓÚ0,Èç¹ûΪ0¾Í»á±¨´í

public DbSqliteOpenHelper(Context context) {

super(context, "student.db", null, 1);

}

Ô´ÂëÖеĽâÊÍ,Êý¾Ý¿â°æ±¾±ØÐë´óÓÚµÈÓÚ0,·ñÔò»áÅ׳öÒì³£

½«Êý¾Ý¿â°æ±¾ÉèÖÃΪ0,ÔËÐÐ

²»Äܽµ°æ±¾

1.4.ÔÚonCreate·½·¨Öд´½¨Êý¾Ý¿â±í

/**

* µ±Êý¾Ý¿â±»´´½¨Ê±,Ö´ÐÐ,

* Ö»»áÖ´ÐÐÒ»´Î

@Override

public void onCreate(SQLiteDatabase db) {

//´´½¨Êý¾Ý¿â±í

//sql create table students(_id integer primary key, name varchar(30))

db.execSQL("create table students(_id integer primary key, name varchar(30))");

Log.i(TAG, "onCreate ·½·¨Ö´ÐÐÁË");

}

1.5.ÔÚActivityÖÐʵÀý»¯

/**

* Êý¾Ý¿â³õʼ»¯

public class MainActivity extends Activity {

private static final String TAG = "MainActivity";

private DbSqliteOpenHelper helper;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//ʵÀý»¯

helper = new DbSqliteOpenHelper(this);

Log.i(TAG, "helper ʵÀý»¯");

//Ö´ÐÐÏ·½µÄ´úÂëºó²Å»á´´½¨Êý¾Ý¿â

helper.getWritableDatabase();

}

}

´´½¨Êý¾Ý¿âºó²¢²»»á±»´´½¨,Ö»ÓÐÖ´ÐÐÁË,getReadDatabase»òÕßgetWriteDatabase(),

²Å»áÖ´ÐÐonCreateÖеķ½·¨

ÔËÐв鿴LOG

1.6.Êý¾ÝÒѾ­´´½¨,²é¿´Êý¾Ý¿â

½«Êý¾Ý¿âÎļþµ¼³öµ½×ÀÃæ

SQLite Expert Professional 3´ò¿ª

1.7.ÐÞ¸ÄÊý¾Ý¿â°æ±¾,ͬÊÇÌí¼ÓÒ»ÁÐ

/**

* µ±Êý¾Ý°æ±¾Éý¼¶Ê±Ö´ÐÐ,

* Êý¾Ý°æ±¾Ö»ÄÜÉý²»Äܽµ ´Ó1¿ªÊ¼

* ÕâÀï³£ÓÃÓÚ¸ü¸ÄÊý¾Ý¿âÖеıíµÄ½á¹¹,ÈçÌí¼ÓÁÐ,ɾ³ýÁÐ,Ö®ÀàµÄ,´´½¨Ðµıí

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

Log.i(TAG, "onUpgrade ·½·¨Ö´ÐÐÁË");

//sql alter table students add gender varchar(10)

//Ìí¼ÓÁÐ

db.execSQL("alter table students add gender varchar(10)");

}

²é¿´ÈÕÖ¾

1.8.µ¼³öÊý¾Ý¿âÖеÄÎļþÔٴβ鿴

ÁÐÒѾ­Ìí¼Ó³É¹¦

2.´«Í³·½Ê½²Ù×÷Êý¾Ý¿â

ʹÓÃsqlÀ´²Ù×÷Êý¾Ý¿â

/**

* ´«Í³Êý¾Ý¿â²Ù×÷¹¤¾ßÀà

public class StudentDao {

private static final String TAG = "StudentDao";

* ²Ù×÷Êý¾Ý¿âÀà

private DbSqliteOpenHelper helper;

public StudentDao(Context context){

helper = new DbSqliteOpenHelper(context);

}

* ²åÈë·½·¨

* @param name ÐÕÃû

* @param gender ÐÔ±ð

* @param stuno ѧºÅ

public void insert(String name,String gender,String stuno){

//»ñÈ¡Êý¾Ý

SQLiteDatabase db = helper.getWritableDatabase();

String sql="insert into students values (null,?,?,?)";

//Ìî³äռλ·û

Object [] bindArgs={name,gender,stuno};

//Ö´ÐÐSQL

db.execSQL(sql, bindArgs);

//¹Ø±ÕÊý¾Ý¿âÁ¬½Ó

db.close();

}

* Ð޸ĸü¸Ä update

* @param name ÐÕÃû

* @param gender ÐÔ±ð

* @param stuno ѧºÅ

public void update(String name,String gender,String stuno){

//»ñÈ¡Êý¾Ý

SQLiteDatabase db = helper.getWritableDatabase();

String sql="update students set gender=?,stuno=? where name=?";

//Ìî³äռλ·û

Object [] bindArgs={gender,stuno,name};

//Ö´ÐÐSQL

db.execSQL(sql, bindArgs);

//¹Ø±ÕÊý¾Ý¿âÁ¬½Ó

db.close();

}

* ɾ³ý

* @param name ÐÕÃû

public void delete(String name){

//»ñÈ¡Êý¾Ý

SQLiteDatabase db = helper.getWritableDatabase();

String sql="delete from students where name=?";

//Ìî³äռλ·û

Object [] bindArgs={name};

//Ö´ÐÐSQL

db.execSQL(sql, bindArgs);

//¹Ø±ÕÊý¾Ý¿âÁ¬½Ó

db.close();

}

* ²éѯȫ²¿

public void getAll(){

//»ñÈ¡Êý¾Ý

SQLiteDatabase db = helper.getReadableDatabase();

String sql="select _id,name,gender,stuno from students";

//Ö´ÐÐSQL

Cursor cursor = db.rawQuery(sql, null);

while(cursor.moveToNext()){

int _id = cursor.getInt(cursor.getColumnIndex("_id"));

String name = cursor.getString(cursor.getColumnIndex("name"));

String gender = cursor.getString(cursor.getColumnIndex("gender"));

String stuno = cursor.getString(cursor.getColumnIndex("stuno"));

Log.i(TAG, "_id:"+_id+"name:"+name+",gender:"+gender+",stuno:"+stuno);

}

cursor.close();

//¹Ø±ÕÊý¾Ý¿âÁ¬½Ó

db.close();

}

* ²éѯȫ²¿

public void getOne(String stuname){

//»ñÈ¡Êý¾Ý

SQLiteDatabase db = helper.getReadableDatabase();

String sql="select _id,name,gender,stuno from students where name=?";

String[] selectionArgs = {stuname};

//Ö´ÐÐSQL

Cursor cursor = db.rawQuery(sql, selectionArgs);

while(cursor.moveToNext()){

int _id = cursor.getInt(cursor.getColumnIndex("_id"));

String name = cursor.getString(cursor.getColumnIndex("name"));

String gender = cursor.getString(cursor.getColumnIndex("gender"));

String stuno = cursor.getString(cursor.getColumnIndex("stuno"));

Log.i(TAG, "_id:"+_id+"name:"+name+",gender:"+gender+",stuno:"+stuno);

}

cursor.close();

//¹Ø±ÕÊý¾Ý¿âÁ¬½Ó

db.close();

}

}

²âÊÔÀà

/**

* ²âÊÔ´«Í³·½Ê½Êý¾Ý¿â¹¤¾ßÀà

public class TestStudentDao extends AndroidTestCase{

private StudentDao studentDao;

@Override

protected void setUp() throws Exception {

studentDao = new StudentDao(getContext());

}

* ²âÊÔ²åÈë

public void testInsert(){

studentDao.insert("lisi", "man", "heimaAndroid2179");

}

* ²âÊÔ²åÈë

public void testDelete(){

studentDao.delete("liunan");

}

* ²âÊÔÐÞ¸Ä

public void testUpdate(){

studentDao.update("lisi", "Å®", "33");

}

* ²âÊÔ²éѯȫ²¿

public void testGetAll(){

studentDao.getAll();

}

* ²âÊÔ²éѯһ¸ö

public void testGetOne(){

studentDao.getOne("lisi");

}

}

3.Êý¾Ý°æ±¾ÅжÏÓë¸üÐÂ

/**

* Êý¾Ý¿â´´½¨Àà

public class DbSqliteOpenHelper extends SQLiteOpenHelper {

private static final String TAG = "DbSqliteOpenHelper";

* @param context ÉÏÏÂÎÄ

* @param name Êý¾Ý¿âµÄÃû×ÖÈç: students.db

* @param factory Óα깤³§ ,ÀàËÆJDBCÖеÄResultSetÖеÄhasNext();

* @param version Êý¾Ý¿âµÄ°æ±¾ ÕâÀïµÄ°æ±¾±ØÐë´óÓÚ0,Èç¹ûΪ0¾Í»á±¨´í

public DbSqliteOpenHelper(Context context) {

super(context, "student.db", null,4);

}

* µ±Êý¾Ý¿â±»´´½¨Ê±,Ö´ÐÐ,

* Ö»»áÖ´ÐÐÒ»´Î

* µÚ¶þÉÁÔËÐÐÊǾͲ»»áÖ´ÐÐÁË

@Override

public void onCreate(SQLiteDatabase db) {

int version = db.getVersion();

Log.i(TAG, "version:"+version);

Log.i(TAG, "onCreate ·½·¨Ö´ÐÐÁË");

if(version==0){

db.execSQL("create table students(_id integer primary key autoincrement, name varchar(30),gender varchar(10),stuno varchar(50))");

Log.i(TAG, "version=0Ö´ÐÐÁË");

}else{

//´´½¨Êý¾Ý¿â±í

//sql create table students(_id integer primary key, name varchar(30))

db.execSQL("create table students(_id integer primary key autoincrement, name varchar(30))");

Log.i(TAG, "version²»µÈ0Ö´ÐÐÁË");

}

}

* µ±Êý¾Ý°æ±¾Éý¼¶Ê±Ö´ÐÐ,

* Êý¾Ý°æ±¾Ö»ÄÜÉý²»Äܽµ ´Ó1¿ªÊ¼

* ÕâÀï³£ÓÃÓÚ¸ü¸ÄÊý¾Ý¿âÖеıíµÄ½á¹¹,ÈçÌí¼ÓÁÐ,ɾ³ýÁÐ,Ö®ÀàµÄ,´´½¨Ðµıí

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

Log.i(TAG, "onUpgrade ·½·¨Ö´ÐÐÁË");

Log.i(TAG, oldVersion+"");

Log.i(TAG, newVersion+"");

//Ëã³öР¾É°æ±¾µÄ²î

int difference = newVersion-oldVersion;

switch (difference) {

case 1:

db.execSQL("alter table students add gender varchar(10)");

Log.i(TAG, difference+"");

break;

case 2:

db.execSQL("alter table students add gender varchar(10))");

db.execSQL("alter table students add stuno varchar(50))");

Log.i(TAG, difference+"");

break;

default:

break;

}

}

}

4.ʹÓÃAndroidÌṩµÄAPIÀ´²Ù×÷Êý¾Ý¿â

/**

* ʹÓÃAndroidÖеÄAPIÀ´Ö´ÐвÙ×÷Êý¾Ý¿â

public class StudentDao2 {

private static final String TAG = "StudentDao2";

* ²Ù×÷Êý¾Ý¿âÀà

private DbSqliteOpenHelper helper;

public StudentDao2(Context context) {

helper = new DbSqliteOpenHelper(context);

}

* ²åÈë·½·¨

* @param name

* ÐÕÃû

* @param gender

* ÐÔ±ð

* @param stuno

* ѧºÅ

public long insert(String name, String gender, String stuno) {

// »ñÈ¡Êý¾Ý

SQLiteDatabase db = helper.getWritableDatabase();

// Ìî³äռλ·û

ContentValues values = new ContentValues();

values.put("name", name);

values.put("gender", gender);

values.put("stuno", stuno);

String nullColumnHack = "values(null,?,?,?)";

// Ö´ÐÐSQL

long insert = db.insert("students", nullColumnHack, values);

// ¹Ø±ÕÊý¾Ý¿âÁ¬½Ó

db.close();

return insert;

}

* Ð޸ĸü¸Ä update

* @param name

* ÐÕÃû

* @param gender

* ÐÔ±ð

* @param stuno

* ѧºÅ

public int update(String name, String gender, String stuno) {

// »ñÈ¡Êý¾Ý

SQLiteDatabase db = helper.getWritableDatabase();

String sql = "update students set gender=?,stuno=? where name=?";

// Ìî³äռλ·û

ContentValues values = new ContentValues();

values.put("gender", gender);

values.put("stuno", stuno);

// Ö´ÐÐSQL

int update = db.update("students", values, " name=?", new String[]{name});

// ¹Ø±ÕÊý¾Ý¿âÁ¬½Ó

db.close();

return update;

}

* ɾ³ý

* @param name

* ÐÕÃû

public int delete(String name) {

// »ñÈ¡Êý¾Ý

SQLiteDatabase db = helper.getWritableDatabase();

// Ö´ÐÐSQL

int delete = db.delete("students", " name=?", new String[]{name});

// ¹Ø±ÕÊý¾Ý¿âÁ¬½Ó

db.close();

return delete;

}

* ²éѯȫ²¿

public void getAll() {

// »ñÈ¡Êý¾Ý

SQLiteDatabase db = helper.getReadableDatabase();

String sql = "select _id,name,gender,stuno from students";

// Ö´ÐÐSQL

Cursor cursor = db.query("students", new String[]{"_id","name","gender","stuno"}, null, null, null, null, null);

while (cursor.moveToNext()) {

int _id = cursor.getInt(cursor.getColumnIndex("_id"));

String name = cursor.getString(cursor.getColumnIndex("name"));

String gender = cursor.getString(cursor.getColumnIndex("gender"));

String stuno = cursor.getString(cursor.getColumnIndex("stuno"));

Log.i(TAG, "_id:" + _id + "name:" + name + ",gender:" + gender

+ ",stuno:" + stuno);

}

cursor.close();

// ¹Ø±ÕÊý¾Ý¿âÁ¬½Ó

db.close();

}

* ²éѯȫ²¿

public void getOne(String stuname) {

// »ñÈ¡Êý¾Ý

SQLiteDatabase db = helper.getReadableDatabase();

// Ö´ÐÐSQL

Cursor cursor = db.query("students", new String[]{"_id","name","gender","stuno"},

"name =?", new String[]{stuname}, null, null, null);

while (cursor.moveToNext()) {

int _id = cursor.getInt(cursor.getColumnIndex("_id"));

String name = cursor.getString(cursor.getColumnIndex("name"));

String gender = cursor.getString(cursor.getColumnIndex("gender"));

String stuno = cursor.getString(cursor.getColumnIndex("stuno"));

Log.i(TAG, "_id:" + _id + "name:" + name + ",gender:" + gender

+ ",stuno:" + stuno);

}

cursor.close();

// ¹Ø±ÕÊý¾Ý¿âÁ¬½Ó

db.close();

}

}

²âÊÔ

/**

* ²âÊÔ´«Í³·½Ê½Êý¾Ý¿â¹¤¾ßÀà

public class TestStudentDao2 extends AndroidTestCase{

private static final String TAG = "TestStudentDao2";

private StudentDao2 studentDao2;

@Override

protected void setUp() throws Exception {

studentDao2 = new StudentDao2(getContext());

}

* ²âÊÔ²åÈë

public void testInsert(){

long result = studentDao2.insert("lisi", "man", "heimaAndroid2179");

Log.i(TAG, result+"");

}

* ²âÊÔ²åÈë

public void testDelete(){

int delete = studentDao2.delete("aa");

Log.i(TAG, delete+"");

}

* ²âÊÔÐÞ¸Ä

public void testUpdate(){

int update = studentDao2.update("lisi", "hh", "33");

Log.i(TAG, update+"");

}

* ²âÊÔ²éѯȫ²¿

public void testGetAll(){

studentDao2.getAll();

}

* ²âÊÔ²éѯһ¸ö

public void testGetOne(){

studentDao2.getOne("gh");

}

}

5.´´½¨Ò»¸öѧÉúÐÅϢ¼Èë,ʹÓÃListViewչʾÐÅÏ¢baseAdapter

²¼¾Ö

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context=".MainActivity" >

<TextView

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:gravity="center_horizontal"

android:text="ѧÉúÐÅÏ¢¹ÜÀíϵͳ"

android:textColor="#77ff0000"

android:textSize="29sp" />

<EditText

android:id="@+id/et_name"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:hint="ÇëÊäÈëѧÉúÐÕÃû" />

<!-- ÐÔ±ð -->

<RadioGroup

android:id="@+id/rgp"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="horizontal" >

<!-- ÐÔ±ðÄÐ -->

<RadioButton

android:id="@+id/rb_male"

android:layout_width="0dp"

android:layout_height="wrap_content"

android:layout_weight="1"

android:checked="true"

android:text="male" />

<!-- ÐÔ±ðÅ® -->

<RadioButton

android:id="@+id/rb_female"

android:layout_width="0dp"

android:layout_height="wrap_content"

android:layout_weight="1"

android:text="female" />

</RadioGroup>

<!-- ±£´æ -->

<Button

android:id="@+id/btn_save"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="±£´æ" />

<!-- ²éѯ -->

<Button

android:id="@+id/btn_querty"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="²éѯȫ²¿Ñ§ÉúÐÅÏ¢" />

<ListView

android:id="@+id/lv_item"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:divider="#ff0000"

android:dividerHeight="2dp">

</ListView>

</LinearLayout>

ListViewҪʹÓõIJ¼¾Ö

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="wrap_content" >

<ImageView

android:id="@+id/iv_sex"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerVertical="true"

android:layout_margin="20dp"

android:src="@drawable/mr" />

<RelativeLayout

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_margin="10dp"

android:layout_toRightOf="@id/iv_sex" >

<TextView

android:id="@+id/tv_no"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="ѧºÅ" />

<TextView

android:id="@+id/tv_name"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_below="@id/tv_no"

android:text="ÐÕÃû" />

<ImageView

android:id="@+id/iv_delete"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentRight="true"

android:layout_centerVertical="true"

android:layout_margin="20dp"

android:src="@drawable/delete" />

</RelativeLayout>

</RelativeLayout>

Êý¾Ý¿â´´½¨Àà

/**

* Êý¾Ý¿â´´½¨Àà,Óëά»¤µÄÀà ¼Ì³ÐSQLiteOpenHelper

public class StudentSqliteOpenHelper extends SQLiteOpenHelper {

private static final String TAG = "StudentSqliteOpenHelper";

public StudentSqliteOpenHelper(Context context) {

super(context, "student.db", null, 2);

}

* ´´½¨Êý¾Ý¿âʱ,Ö´ÐÐÒ»´Î,Ö»Ö´ÐÐÒ»´Î

* ÓÃÀ´´´½¨Êý¾Ý±í

@Override

public void onCreate(SQLiteDatabase db) {

Log.i(TAG, "onCreateÖ´ÐÐÁË");

//»ñȡԭÀ´µÄ°æ±¾,»ñÈ¡²»µ½Îª0

int version = db.getVersion();

if(version==0){

//´´½¨±í

String sql= "create table students ( _id integer primary key autoincrement, name varchar(30),gender varchar(10))";

db.execSQL(sql);

}else{

//´´½¨±í

String sql= "create table students ( _id integer primary key autoincrement, name varchar(30))";

db.execSQL(sql);

}

}

* µ±Êý¾Ý¿â°æ±¾·¢Éú±ä»¯Ê±Ö´ÐÐ

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

Log.i(TAG, "onUpgradeÖ´ÐÐÁË");

switch (oldVersion) {

case 1:

String sql= "alter table students add gender varchar(10)";

db.execSQL(sql);

break;

case 2:

break;

default:

break;

}

}

}

ʵÌåÀà

/**

* ѧÉúµÄ·â×°Àà

public class Student {

* ID

private int id;

* ÐÕÃû

private String name;

* ÐÔ±ð

private String gender;

public Student() {

super();

}

public Student(int id, String name, String gender) {

super();

this.id = id;

this.name = name;

this.gender = gender;

}

public String getGender() {

return gender;

}

public int getId() {

return id;

}

public String getName() {

return name;

}

public void setGender(String gender) {

this.gender = gender;

}

public void setId(int id) {

this.id = id;

}

public void setName(String name) {

this.name = name;

}

}

Êý¾Ý¿â¹¤¾ßÀà

/**

* ѧÉúÊý¾Ý¿â·ÃÎʹ¤¾ßÀà

public class StudentDao {

* Êý¾Ý¿â´´½¨¸üÐÂÀà

private StudentSqliteOpenHelper helper;

public StudentDao(Context context) {

helper = new StudentSqliteOpenHelper(context);

}

* ²åÈëÒ»Ìõ¼Ç¼

* @param name

* ÐÕÃû

* @param gender

* ÐÔ±ð

* @return ·µ»Ø²åÈëºóµÄ_id

public long insert(String name, String gender) {

// »ñÈ¡Êý¾Ý¿â

SQLiteDatabase db = helper.getWritableDatabase();

// ²åÈëµÄÁÐ

String nullColumnHack = "values(null,?,?)";

// ռλ·û

ContentValues values = new ContentValues();

values.put("name", name);

values.put("gender", gender);

// Ö´ÐÐ

long insert = db.insert("students", nullColumnHack, values);

// ¹Ø±ÕÁ¬½Ó

db.close();

return insert;

}

* ÐÞ¸ÄÒ»Ìõ¼Ç¼

* @param name

* ÐÕÃû

* @param gender

* ÐÔ±ð

* @return ·µ»Ø²åÈëºóµÄ_id

public long update(String name, String gender) {

// »ñÈ¡Êý¾Ý¿â

SQLiteDatabase db = helper.getWritableDatabase();

// ²åÈëµÄÁÐ

// ռλ·û

ContentValues values = new ContentValues();

values.put("gender", gender);

// Ö´ÐÐ

int update = db.update("students", values, "name = ?",

new String[] { name });

// ¹Ø±ÕÁ¬½Ó

db.close();

return update;

}

* ɾ³ýÒ»Ìõ¼Ç¼

* @param name

* ÐÕÃû

* @return ·µ»ØÉ¾³ýºóµÄ_id

public int delete(String name) {

// »ñÈ¡Êý¾Ý¿â

SQLiteDatabase db = helper.getWritableDatabase();

// Ö´ÐÐ

int delete = db.delete("students", "name = ?", new String[] { name });

// ¹Ø±ÕÁ¬½Ó

db.close();

return delete;

}

* ²éѯȫ²¿Ñ§ÉúÐÅÏ¢

* @return

public List<Student> getAll() {

// ÈÝÆ÷

List<Student> list = new ArrayList<Student>();

// »ñÈ¡Êý¾Ý¿â

SQLiteDatabase db = helper.getReadableDatabase();

String[] columns = { "_id", "name", "gender" };

Cursor cursor = db.query("students", columns, null, null, null, null,

null);

while (cursor.moveToNext()) {

int id = cursor.getInt(cursor.getColumnIndex("_id"));

String name = cursor.getString(cursor.getColumnIndex("name"));

String gender = cursor.getString(cursor.getColumnIndex("gender"));

// Ìí¼Óµ½¼¯ºÏÖÐ

list.add(new Student(id, name, gender));

}

// ¹Ø±ÕÓαê

cursor.close();

// ¹Ø±Õ

db.close();

return list;

}

}

Activity

/**

* ѧÉú¹ÜÀíÐÅϢϵͳActivity

* ²½Öè

* 1.»ñÈ¡Óû§ÊäÈëÐÕÃûÓëÑ¡ÔñµÄÐÔ±ð

* 2.ÅжÏÊÇ·ñΪ¿Õ,Ϊ¿Õ¾ÍÌáʾ,²»Îª¿Õ

* 3.±£´æÊý¾Ý

* 4.µã»÷²éѯ,ÔÚÏ·½µÄListViewÖÐÏÔʾËùÓеÄѧÉúÐÅÏ¢

* 5.ΪListViewÉèÖÃBaseAdapter

* 6.ʵÏÖgetCountÓëgetView·½·¨

* 7.·µ»Øview

* 8.µã»÷ɾ³ý,µ¯³öÌáʾ¶Ô»°¿ò,

* 9.È¡ÏûʲôҲ²»×ö,È·¶¨¾Íɾ³ýµ±Ç°¼Ç¼

public class MainActivity extends Activity implements OnClickListener {

* ÐÕÃû

private EditText et_name;

* ÐÔ±ð

private RadioGroup rgp;

* ±£´æ

private Button btn_save;

* ²éѯ

private Button btn_querty;

* ѧÉúÁбí

private ListView lv_item;

* ѧÉú±íÊý¾Ý¿â²Ù×÷Àà

private StudentDao studentDao;

* ѧÉúÁбí

private List<Student> list;

* ѧÉúÁбíÊÊÅäÆ÷

private StuBaseAdapter stuBaseAdapter;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

et_name = (EditText) findViewById(R.id.et_name);

rgp = (RadioGroup) findViewById(R.id.rgp);

btn_save = (Button) findViewById(R.id.btn_save);

btn_querty = (Button) findViewById(R.id.btn_querty);

lv_item = (ListView) findViewById(R.id.lv_item);

* ³õʼ»¯Êý¾Ý¿âѧÉú±íµÄ¹¤¾ßÀà

studentDao = new StudentDao(this);

* ÉèÖüàÌýʼþ

btn_save.setOnClickListener(this);

btn_querty.setOnClickListener(this);

}

* µ¥»÷ʼþ¼àÌýÆ÷

@Override

public void onClick(View v) {

switch (v.getId()) {

case R.id.btn_save:

// ±£´æ

save();

break;

case R.id.btn_querty:

// ²éѯ

query();

break;

}

}

* ²éѯѧÉúÁбí

private void query() {

refresh();

}

private void refresh() {

* ²éѯȫ²¿Ñ§ÉúÐÅÏ¢

list = studentDao.getAll();

if (stuBaseAdapter == null) {

// ÅÐ¶Ï Îª¿Õ¾Ínew ,ΪListViewÉèÖÃÊÊÅäÆ÷

stuBaseAdapter = new StuBaseAdapter();

lv_item.setAdapter(stuBaseAdapter);

} else {

// ֪ͨListViewÁбí¸Ä±ä

stuBaseAdapter.notifyDataSetChanged();

}

}

* ±£´æÑ§ÉúÐÅÏ¢

private void save() {

// »ñȡѧÉúÊäÈëµÄÐÅÏ¢

String name = et_name.getText().toString().trim();

// ÅжÏ

if (TextUtils.isEmpty(name)) {

Toast.makeText(this, "ѧÉúÐÕÃû²»ÄÜΪ¿Õ", Toast.LENGTH_SHORT).show();

return;

}

// »ñÈ¡ÐÔ±ð

String gender = "male";

switch (rgp.getCheckedRadioButtonId()) {

case R.id.rb_male:

gender = "male";

break;

case R.id.rb_female:

gender = "female";

break;

}

// ¿ªÊ¼±£´æ

long insert = studentDao.insert(name, gender);

if (insert > 0) {

Toast.makeText(this, "±£´æ³É¹¦", Toast.LENGTH_SHORT).show();

et_name.setText("");

} else {

Toast.makeText(this, "±£´æÊ§°Ü", Toast.LENGTH_SHORT).show();

}

}

* ѧÉúÁбíÊÊÅäÆ÷

private class StuBaseAdapter extends BaseAdapter {

private static final String TAG = "StuBaseAdapter";

@Override

public int getCount() {

return list.size();

}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

Log.i(TAG, position + "");

View view;

if (convertView == null) {

view = View.inflate(MainActivity.this, R.layout.stu_item, null);

} else {

view = convertView;

}

// µÃµ½Ñ§Éú¶ÔÏó

final Student student = list.get(position);

ImageView iv_sex = (ImageView) view.findViewById(R.id.iv_sex);

if ("male".equals(student.getGender())) {

iv_sex.setImageResource(R.drawable.mr);

} else if ("female".equals(student.getGender())) {

iv_sex.setImageResource(R.drawable.miss);

}

TextView tv_no = (TextView) view.findViewById(R.id.tv_no);

tv_no.setText("񅧏:" + student.getId());

TextView tv_name = (TextView) view.findViewById(R.id.tv_name);

tv_name.setText("ÐÕÃû:" + student.getName());

ImageView iv_delete = (ImageView) view.findViewById(R.id.iv_delete);

iv_delete.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// ¶Ô»°¿òÀ´ÌáʾÓû§ÊÇ·ñɾ³ý

AlertDialog.Builder builder = new AlertDialog.Builder(

MainActivity.this);

builder.setTitle("ɾ³ý").setIcon(R.drawable.tools)

.setMessage("È·¶¨ÒªÉ¾³ýÕâÌõ¼Ç¼Âð");

builder.setPositiveButton("È·¶¨",

new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog,int which) {

* ɾ³ý·½·¨

int delete = studentDao.delete(student.getName());

if (delete > 0) {

Toast.makeText(MainActivity.this, "ɾ³ý³É¹¦",

Toast.LENGTH_SHORT).show();

// Ë¢ÐÂÁбí

refresh();

} else {

Toast.makeText(MainActivity.this, "ɾ³ýʧ°Ü",

Toast.LENGTH_SHORT).show();

}

}

});

builder.setNegativeButton("È¡Ïû", null);

builder.create().show();

}

});

return view;

}

@Override

public Object getItem(int position) {

return position;

}

@Override

public long getItemId(int position) {

return position;

}

}

}

   
2220 ´Îä¯ÀÀ       27
 
Ïà¹ØÎÄÕÂ

ÊÖ»úÈí¼þ²âÊÔÓÃÀýÉè¼ÆÊµ¼ù
ÊÖ»ú¿Í»§¶ËUI²âÊÔ·ÖÎö
iPhoneÏûÏ¢ÍÆËÍ»úÖÆÊµÏÖÓë̽ÌÖ
AndroidÊÖ»ú¿ª·¢£¨Ò»£©
 
Ïà¹ØÎĵµ

Android_UI¹Ù·½Éè¼Æ½Ì³Ì
ÊÖ»ú¿ª·¢Æ½Ì¨½éÉÜ
androidÅÄÕÕ¼°ÉÏ´«¹¦ÄÜ
Android½²ÒåÖÇÄÜÊÖ»ú¿ª·¢
Ïà¹Ø¿Î³Ì

Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
Androidϵͳ¿ª·¢
AndroidÓ¦Óÿª·¢
ÊÖ»úÈí¼þ²âÊÔ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

androidÈË»ú½çÃæÖ¸ÄÏ
AndroidÊÖ»ú¿ª·¢£¨Ò»£©
AndroidÊÖ»ú¿ª·¢£¨¶þ£©
AndroidÊÖ»ú¿ª·¢£¨Èý£©
AndroidÊÖ»ú¿ª·¢£¨ËÄ£©
iPhoneÏûÏ¢ÍÆËÍ»úÖÆÊµÏÖ̽ÌÖ
ÊÖ»úÈí¼þ²âÊÔÓÃÀýÉè¼ÆÊµ¼ù
ÊÖ»ú¿Í»§¶ËUI²âÊÔ·ÖÎö
ÊÖ»úÈí¼þ×Ô¶¯»¯²âÊÔÑо¿±¨¸æ

Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
AndroidÓ¦Óÿª·¢
Androidϵͳ¿ª·¢
ÊÖ»úÈí¼þ²âÊÔ
ǶÈëʽÈí¼þ²âÊÔ
AndroidÈí¡¢Ó²¡¢ÔÆÕûºÏ

ÁìÏÈIT¹«Ë¾ android¿ª·¢Æ½Ì¨×î¼Ñʵ¼ù
±±¾© Android¿ª·¢¼¼Êõ½ø½×
ijÐÂÄÜÔ´ÁìÓòÆóÒµ Android¿ª·¢¼¼Êõ
ijº½Ì칫˾ Android¡¢IOSÓ¦ÓÃÈí¼þ¿ª·¢
°¢¶û¿¨ÌØ LinuxÄÚºËÇý¶¯
°¬Ä¬Éú ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
Î÷ÃÅ×Ó Ç¶Èëʽ¼Ü¹¹Éè¼Æ