아래와 같이 붉은색으로 표시된 메소드들을 사용하지 않고 다른 메소드를 만들어 사용하고 싶은데
만들어본 메소드는 실제 사용하지 못했고 사용불가능하다는 메세지가 나왔습니다.
사용가능한 메소드를 만드는데 가능여부확인 방법과 어떤 이름으로 메소드를 만들어야 하는지 궁금합니다.
예)버른클릭을 하지않고 onCreate(Bundle savedInstanceState) 다음에 바로
databaseName = editText.getText().toString();
//데이터베이스를 여는 과정
try {
//database = openOrCreateDatabase(databaseName, Context.MODE_PRIVATE, null);
//Helper사용 데이터 베이스를 만드는 부분이며 SelfWashLisDatatHelper를 만들어 사용함. 여기서 1은 버전정보이며 테이블을 추가했을 경우은 숫자를 2로 변경함.
datatHelper = new SelfWashLisDatatHelper(getApplicationContext(), databaseName, null, 1);
database = datatHelper.getWritableDatabase();
plintln("데이터베이스를 열었습니다." + databaseName);
}catch (Exception e) {
e.printStackTrace();
}
내용을 실행 시키려면 사용가능한 메소드를 만드는데 가능여부확인 방법과 어떤 이름으로 메소드를 만들어야 하는지 아니면 찾는 방법이 궁금합니다. 그리고 아래에서 private void plintln(String data) {
textView.append(data + "n");
} 메소드도 어떻게 이 메소드도 사용가능한지 확인하고 만들었는지 알고 싶습니다.
public void onButtonClick (View v) {
databaseName = editText.getText().toString();
//데이터베이스를 여는 과정
try {
//database = openOrCreateDatabase(databaseName, Context.MODE_PRIVATE, null);
//Helper사용 데이터 베이스를 만드는 부분이며 SelfWashLisDatatHelper를 만들어 사용함. 여기서 1은 버전정보이며 테이블을 추가했을 경우은 숫자를 2로 변경함.
datatHelper = new SelfWashLisDatatHelper(getApplicationContext(), databaseName, null, 1);
database = datatHelper.getWritableDatabase();
plintln("데이터베이스를 열었습니다." + databaseName);
}catch (Exception e) {
e.printStackTrace();
}
}
public void onButtonClick2 (View v) {
//createTable(); onCreate(SQLiteDatabase db)부분에서 호출됨.
// Helper를 사용할 경우 사용하지 않음
/*
tableName = editText2.getText().toString(); //테이블을 읽어오는 부분
//테이블 만느는 과정
try {
if (databaseName != null) {
database.execSQL("CREATE TABLE if not exists " + tableName + "("
+ "_id integer PRIMARY KEY autoincrement, "
+ "name text,"
+ "adress text, "
+ "phone text"
+ ")");
plintln("테이블을 만들었습니다." + tableName);
}else {
plintln("데이터베이스를 열어 주세요.");
}
}catch (Exception e) {
e.printStackTrace();
}
*/
} public void createTable(SQLiteDatabase db) {
tableName = editText2.getText().toString();
//테이블 만느는 과정
try {
if (db != null) {
db.execSQL("CREATE TABLE if not exists " + tableName + "("
+ "_id integer PRIMARY KEY autoincrement, "
+ "name text, "
+ "adress text, "
+ "phone text"
+ ")");
plintln("테이블을 만들었습니다." + tableName);
}else {
plintln("데이터베이스를 먼저 열어 주세요.");
}
}catch (Exception e) {
e.printStackTrace();
}
}
//데이터 베이스가 있는경우
public void changeTable (SQLiteDatabase db) {
try {
if (db != null) {
db.execSQL("CREATE TABLE if not exists " + "PRICE" + "("
+ "_id integer PRIMARY KEY autoincrement, "
+ "name text,"
+ "price integer"
+ ")");
plintln("PRICE" + "테이블을 추가로 만들었습니다.");
}else {
plintln("데이터베이스를 열어 주세요.");
}
}catch (Exception e) {
e.printStackTrace();
}
}
public void onButtonClick4 (View v) {
try {
if (tableName == null) {
tableName = editText2.getText().toString();
}
if (database != null) {
Cursor cursor = database.rawQuery("SELECT _id, name, adress, phone FROM " + tableName, null);
//리스트뷰에 붙이는 부분
startManagingCursor(cursor);
String [] columns = new String[] {"name", "adress", "phone"};
int[] to = new int[] {R.id.textView2, R.id.textView3, R.id.textView4};
//columns와 to 부분이 맵핑되는 부분
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.selfwash_item, cursor, columns, to);
listView.setAdapter(adapter);
adapter.notifyDataSetChanged();
int count = cursor.getCount();
plintln("테이블에 갯수는 : " + count);
for (int i = 0; i < count; i++) {
cursor.moveToNext();
int _id = cursor.getInt(0);
String name = cursor.getString(1);
String adress = cursor.getString(2);
String phone = cursor.getString(3);
plintln("테이블# : " + i + ":" + _id + "," + name + "," + adress + "," + phone);
}
//cursor.close();
plintln(tableName + "에 데이터를 조회했습니다.");
}else {
plintln("데이터베이스를 열어 주세요.");
}
}catch (Exception e) {
e.printStackTrace();
}
}
private void plintln(String data) {
textView.append(data + "n");
}
//Helper사용시 만들어 짐. 생성자, 콜백메소드
class SelfWashLisDatatHelper extends SQLiteOpenHelper {
public SelfWashLisDatatHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onOpen(SQLiteDatabase db) {
super.onOpen(db);
Toast.makeText(getApplicationContext(), "helper의 onOpen호출됨.", Toast.LENGTH_LONG).show();
}
@Override
public void onCreate(SQLiteDatabase db) {
//이 부분에서도 createTable(); 호출됨.
Toast.makeText(getApplicationContext(), "helper의 onCreate호출됨.", Toast.LENGTH_LONG).show();
createTable(db);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Toast.makeText(getApplicationContext(), "helper의 onUpgrade호출됨." + oldVersion +"->" + newVersion, Toast.LENGTH_LONG).show();
changeTable(db);
}
public void insert(String _query) {
SQLiteDatabase db = getWritableDatabase();
db.execSQL(_query);
db.close();
}
public void update(String _query) {
SQLiteDatabase db = getWritableDatabase();
db.execSQL(_query);
db.close();
}
public void delete(String _query) {
SQLiteDatabase db = getWritableDatabase();
db.execSQL(_query);
db.close();
}
public String PrintData() {
SQLiteDatabase db = getReadableDatabase();
String str = "";
Cursor cursor = db.rawQuery("select * from FOOD_LIST", null);
while(cursor.moveToNext()) {
str += cursor.getInt(0)
+ " : foodName "
+ cursor.getString(1)
+ ", price = "
+ cursor.getInt(2)
+ "n";
}
return str;
}
}
} |