이건 helper쪽 입니다
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import com.example.em_test.CustomAdapter;
import com.example.em_test.DLog;
public class DbOpenHelper {
private static final String DATABASE_NAME = "addressbook.db";
private static final int DATABASE_VERSION = 1;
public static SQLiteDatabase mDB;
private DatabaseHelper mDBHelper;
private Context mCtx;
CustomAdapter CustomAdapter;
private class DatabaseHelper extends SQLiteOpenHelper{
// 생성자
public DatabaseHelper(Context context, String name,
CursorFactory factory, int version) {
super(context, name, factory, version);
}
// 최초 DB를 만들때 한번만 호출된다.
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(DataBases.CreateDB._CREATE);
}
// 버전이 업데이트 되었을 경우 DB를 다시 만들어 준다.
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS "+DataBases.CreateDB._TABLENAME);
onCreate(db);
}
}
public DbOpenHelper(Context context){
this.mCtx = context;
}
public DbOpenHelper open() throws SQLException{
mDBHelper = new DatabaseHelper(mCtx, DATABASE_NAME, null, DATABASE_VERSION);
mDB = mDBHelper.getWritableDatabase();
return this;
}
public void close(){
mDB.close();
}
// Insert DB
public long insertColumn(String name, String phone){
ContentValues values = new ContentValues();
values.put(DataBases.CreateDB.NAME, name);
values.put(DataBases.CreateDB.PHONE, phone);
return mDB.insert(DataBases.CreateDB._TABLENAME, null, values);
}
// Update DB
public boolean updateColumn(long id , String name, String phone){
ContentValues values = new ContentValues();
values.put(DataBases.CreateDB.NAME, name);
values.put(DataBases.CreateDB.PHONE, phone);
return mDB.update(DataBases.CreateDB._TABLENAME, values, "_id="+id, null) > 0;
}
// Delete ID
public boolean deleteColumn(long id){
return mDB.delete(DataBases.CreateDB._TABLENAME, "_id="+id, null) > 0;
}
public void deleteAll() {
mDB.delete(DataBases.CreateDB._TABLENAME, null, null);
}
// Delete Contact
public boolean deleteColumn(String number){
return mDB.delete(DataBases.CreateDB._TABLENAME, "contact="+number, null) > 0;
}
// Select All
public Cursor getAllColumns(){
return mDB.query(DataBases.CreateDB._TABLENAME, null, null, null, null, null, null);
}
// ID 컬럼 얻어 오기
public Cursor getColumn(long id){
Cursor c = mDB.query(DataBases.CreateDB._TABLENAME, null,
"_id="+id, null, null, null, null);
if(c != null && c.getCount() != 0)
c.moveToFirst();
return c;
}
// 이름 검색 하기 (rawQuery)
public Cursor getMatchName(String name){
Cursor c = mDB.rawQuery( "select * from address where name=" + "'" + name + "'" , null);
return c;
}
}
소스쪽 -------
import java.util.ArrayList;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ImageButton;
import android.widget.TextView;
import arabiannight.tistory.com.database.DbOpenHelper;
public class CustomAdapter extends ArrayAdapter<InfoClass> implements OnItemClickListener{
private LayoutInflater inflater;
private ArrayList<InfoClass> infoList;
ViewHolder viewHolder;
static int po=0;
int a = 0;
Number Number;
Add_change Add_change;
private Context con;
DbOpenHelper mDbOpenHelper;
private ArrayList<InfoClass> items;
public CustomAdapter(Context context, ArrayList<InfoClass> items){
super(context, po, items);
this.items = items;
inflater = LayoutInflater.from(context);
infoList = items;
con = context;
}
@Override
public int getCount() {
return infoList.size();
}
@Override
public InfoClass getItem(int arg0) {
return null;
}
@Override
public long getItemId(int arg0) {
return 0;
}
@Override
public View getView(final int position, View convertview, ViewGroup parent) {
View v = convertview;
if(v == null){
viewHolder = new ViewHolder();
v = inflater.inflate(R.layout.item, null);
viewHolder.name = (TextView)v.findViewById(R.id.mText);
viewHolder.phone = (TextView)v.findViewById(R.id.mDate);
viewHolder.mIcon = (ImageButton)v.findViewById(R.id.mImage);
v.setTag(viewHolder);
}else {
viewHolder = (ViewHolder)v.getTag();
}
//현재의 position을 가지고 item을 가져온다.
final InfoClass p = infoList.get(position);
viewHolder.name.setText(p.name);
viewHolder.phone.setText(p.phone);
viewHolder.mIcon.setTag(position);
// DLog.e(""+position,""+position);
// viewHolder.name.setText(infoList.get(position).name);
// viewHolder.phone.setText(infoList.get(position).phone);
// po=position;
viewHolder.name.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
DLog.e(""+position,""+position);
a=1;
InfoClass point = p;
Intent intent = new Intent(con,Add_change.class);
intent.putExtra("a", a);
intent.putExtra("title",p.name);
intent.putExtra("number",p.phone);
intent.putExtra("p",""+ p);
con.startActivity(intent);
}
});