2013年8月28日 星期三

[TQC+ Android]簡單記事_210

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();
     
     //
        
        
    }
}

沒有留言:

張貼留言