僑光科技大學 蔡存孝老師 解說參考: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(); // } }
沒有留言:
張貼留言