Android 2.1 API 7 版本原始題目載點:
http://db.tt/ypxzY27m
僑光科技大學 蔡存孝老師 解說參考:
http://rs2.ocu.edu.tw/~tsay/files/TQC210.pdf
GDD02.java - Activity主體(玩具版本)
package COM.TQC.GDD02;
import android.app.Activity;
import android.content.ContentValues;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
public class GDD02 extends Activity {
private static final String DBNAME = "MY_DB";
private static final String TABLENAME = "MY_TABLE";
private static final String FIELD01_NAME = "_id";
private static final String FIELD02_NAME = "_text1";
private SQLiteDatabase dataBase;
private android.database.Cursor cursor;
private int _id = -1;
private EditText EditText01;
private Button Button01;
private Button Button02;
private Button Button03;
private ListView ListView01;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
EditText01 = (EditText) findViewById(R.id.EditText01);
Button01 = (Button) findViewById(R.id.BtnAdd);
Button02 = (Button) findViewById(R.id.BtnUpdate);
Button03 = (Button) findViewById(R.id.BtnDelete);
ListView01 = (ListView) findViewById(R.id.ListView01);
Button02.setEnabled(false);
Button03.setEnabled(false);
String CREATE_SQL = "create table if not exists "+TABLENAME+" ("+FIELD01_NAME+" integer primary key autoincrement, "+FIELD02_NAME+" varchar not null);";
// answer part 1
dataBase = openOrCreateDatabase(DBNAME, MODE_WORLD_WRITEABLE, null);
dataBase.execSQL(CREATE_SQL);
cursor = dataBase.query(TABLENAME, null, null, null, null, null, null);
android.widget.SimpleCursorAdapter adapter = new android.widget.SimpleCursorAdapter(this, R.layout.list,
cursor, new String[]
{ FIELD02_NAME }, new int[]
{ R.id.CheckedTextView01 });
// answer part 2
ListView01.setAdapter(adapter);
Button01.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
// answer part 3
if(EditText01.getText().toString().trim().length()>0){
insert(""+EditText01.getText());
}
}});
Button02.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
// answer part 4
if(_id!=-1 && EditText01.getText().toString().trim().length()>0){
update(_id,""+EditText01.getText());
Button02.setEnabled(false);
Button03.setEnabled(false);
}
EditText01.setText(""); // answer part 5
}});
Button03.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if(_id!=-1){
delete(_id);
Button02.setEnabled(false);
Button03.setEnabled(false);
EditText01.setText(""); // answer part 6
}
}});
ListView01.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener(){
@Override
public void onItemClick(android.widget.AdapterView<?> arg0,
View arg1, int arg2, long arg3) {
// TODO Auto-generated method stub
// answer part 7
cursor.moveToPosition(arg2);
_id = cursor.getInt(0);
EditText01.setText(cursor.getString(1));
Button02.setEnabled(true);
Button03.setEnabled(true);
}});
}
private void insert(String text){
// answer part 8
ContentValues cv = new ContentValues();
cv.put(FIELD02_NAME, text);
dataBase.insert(TABLENAME, null, cv);
cursor.requery();
}
private void update(int id,String text){
// answer part 9
String whereClause = FIELD01_NAME+"=?";
String whereArgs[] = { Integer.toString(id) };
ContentValues cv = new ContentValues();
cv.put(FIELD02_NAME, text);
dataBase.update(TABLENAME, cv, whereClause, whereArgs);
cursor.requery();
}
private void delete(int id){
// answer part 10
String whereClause = FIELD01_NAME+"=?";
String whereArgs[] = { Integer.toString(id) };
dataBase.delete(TABLENAME, whereClause, whereArgs);
cursor.requery();
}
}
GDD02.java - Activity主體(立人版本)
package COM.TQC.GDD02;
import android.app.Activity;
import android.content.ContentValues;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
public class GDD02 extends Activity {
private static final String DBNAME = "MY_DB";
private static final String TABLENAME = "MY_TABLE";
private static final String FIELD01_NAME = "_id";
private static final String FIELD02_NAME = "_text1";
private SQLiteDatabase dataBase;
private android.database.Cursor cursor;
private int _id = -1;
private EditText EditText01;
private Button Button01;
private Button Button02;
private Button Button03;
private ListView ListView01;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
EditText01 = (EditText) findViewById(R.id.EditText01);
Button01 = (Button) findViewById(R.id.BtnAdd);
Button02 = (Button) findViewById(R.id.BtnUpdate);
Button03 = (Button) findViewById(R.id.BtnDelete);
ListView01 = (ListView) findViewById(R.id.ListView01);
Button02.setEnabled(false);
Button03.setEnabled(false);
String CREATE_SQL = "create table if not exists "+TABLENAME+" ("+FIELD01_NAME+" integer primary key autoincrement, "+FIELD02_NAME+" varchar not null);";
// part 1
dataBase = openOrCreateDatabase(DBNAME, MODE_WORLD_WRITEABLE, null);
dataBase.execSQL(CREATE_SQL);
cursor = dataBase.query(TABLENAME, null, null, null, null, null, null);
//
android.widget.SimpleCursorAdapter adapter = new android.widget.SimpleCursorAdapter(this, R.layout.list,
cursor, new String[]
{ FIELD02_NAME }, new int[]
{ R.id.CheckedTextView01 });
// part 2
ListView01.setAdapter(adapter);
//
Button01.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
// part add toString()
if(!EditText01.getText().toString().equals("")){
insert(""+EditText01.getText());
}
}});
Button02.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
//part add toString()
if(_id!=-1 && !EditText01.getText().toString().equals("")){
update(_id,""+EditText01.getText());
Button02.setEnabled(false);
Button03.setEnabled(false);
}
}});
Button03.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if(_id!=-1){
delete(_id);
Button02.setEnabled(false);
Button03.setEnabled(false);
}
}});
ListView01.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener(){
@Override
public void onItemClick(android.widget.AdapterView<?> arg0,
View arg1, int arg2, long arg3) {
// TODO Auto-generated method stub
//part 3
cursor.moveToPosition(arg2);
EditText01.setText(cursor.getString(1));
_id = cursor.getInt(0);
//
Button02.setEnabled(true);
Button03.setEnabled(true);
}});
}
private void insert(String text){
//part 4
ContentValues cv = new ContentValues();
cv.put(FIELD02_NAME, text);
dataBase.insert(TABLENAME, null, cv);
cursor.requery();
//
}
private void update(int id,String text){
// part 5
ContentValues cv = new ContentValues();
cv.put(FIELD02_NAME, text);
String wA[] = {Integer.toString(id)};
dataBase.update(TABLENAME, cv, FIELD01_NAME + "=?", wA);
cursor.requery();
//
}
private void delete(int id){
// part 6
String wA[] = {Integer.toString(id)};
dataBase.delete(TABLENAME, FIELD01_NAME + "=?", wA);
cursor.requery();
//
}
}