안드로이드 개발 질문/답변
(글 수 45,052)
다른 클래스에서
불러서 사용하고 싶어서 클래스 객체 선언하고
run함수를 실행하고 싶은데 안됩니다 조언부탁드려요~
import android.app.*;
import android.content.*;
import android.database.*;
import android.database.sqlite.*;
import android.os.*;
import android.view.*;
import android.widget.*;
public class EnglishWord extends Activity {
WordDBHelper mHelper;
EditText mText;
static String temp;
SQLiteDatabase db;
ContentValues row;
Cursor cursor;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mHelper = new WordDBHelper(this);
}
public void run(){
db = mHelper.getReadableDatabase();
cursor = db.rawQuery("SELECT eng, han FROM dic", null);
String Result = "";
while (cursor.moveToNext()) {
String eng = cursor.getString(0);
String han = cursor.getString(1);
String mess = cursor.getString(2);
Result += (eng + " = " + han + "," + mess + "\n");
temp = han;
}
cursor.close();
//mHelper.close();
}
}
class WordDBHelper extends SQLiteOpenHelper {
public WordDBHelper(Context context) {
super(context, "EngWord.db", null, 1);
}
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE dic ( _id INTEGER PRIMARY KEY AUTOINCREMENT, " +
"eng TEXT, han DOUBLE, mess DOUBLE);");
}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS dic");
onCreate(db);
}
}
안드로이드의 Activity는 개발자가 직접 객체를 생성해서 사용하지 않고 안드로이드에 의해 객체의 생성 및 라이프사이클이 관리됩니다.
단순히 run() 메소드를 호출하는 목적이라면 해당 메소드를 일반 클래스에 정의해 놓고 사용하는게 맞을 것 같습니다.