질문) 다이얼로그 클래스의 EditText에서 입력받은 이름을 DB클래스로 가져와서
INSERT시키고 싶습니다. get, set메소드를 잘 활용하면 될거같은데
잘 안되서 질문드립니다.
// 다이얼로그 클래스입니다.
import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class StageDialog extends Dialog {
EditText edtName;
Button btnConfirm, btnCancel;
Handler handler;
Context context;
String name;
public StageDialog(Context context) {
super(context);
this.context = context;
}
public String getName(String name) {
return name;
}
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.stagedialog);
handler = new Handler();
edtName = (EditText)findViewById(R.id.EdtName);
btnConfirm = (Button)findViewById(R.id.BtnConfirm);
btnCancel = (Button)findViewById(R.id.BtnCancel);
btnConfirm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
handler.post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
/*db = helper.getWritableDatabase();
name = edtName.getText().toString();
String sql = "INSERT INTO PipeTBL" + " VALUES('"+ name+ "', 3);";
db.execSQL(sql);
db.close();*/
Intent intent = new Intent(context.getApplicationContext(), GameActivity.class);
context.startActivity(intent);
}
});
}
});
btnCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
dismiss();
}
});
}
==================================================================
// db 클래스입니다.
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public class DBManager {
private static final String DB_NAME = "pipe.db";
private static final int DB_VER = 1;
private static final String tableName = "PipeTBL";
private OpenHelper helper;
private SQLiteDatabase db; // DB controller
Context context;
String name;
// dbDBHelper myHelper = new dbHelper(this);
public DBManager(Context context) {
super();
this.context = context;
this.helper = new OpenHelper(context, DB_NAME, null, DB_VER);
db = helper.getWritableDatabase();
}
// Opener of DB and Table
private class OpenHelper extends SQLiteOpenHelper {
public OpenHelper(Context context, String name, CursorFactory factory, int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
}
// 생성된 DB가 없을 경우에 한번만 호출됨
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
String createSql = "CREATE TABLE " + tableName + " ("
+ "id Int NOT NULL AUTOINCREMENT PRIMARY KEY, " + "name Text, "
+ "time Int)";
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
// 데이터 추가
public void setName(String name) {
this.name = name;
}
public void insertData() {
String sql = "INSERT INTO " + tableName + " VALUES('"+ name+ "');";
db.execSQL(sql);
db.close();
}