지금은 조금 혼란스러워. 나는 XML 파일을 받고 그 내용을 sqlite db에 저장하려고합니다. 아주 흔한 것 같네요. 나는 기본적으로 다음과 같은안드로이드 sqlite 및 SaxParser
private static class DatabaseHelper extends SQLiteOpenHelper
{
private final Context ctx;
DatabaseHelper(Context context)
{
super(context, Constants.DB_NAME, null, Constants.DB_VERSION);
this.ctx = context;
}
@Override
public void onCreate(SQLiteDatabase db)
{
db.execSQL("create table mytable (_id integer primary key autoincrement, field text not null, field2 text not null);");
fillDb(db);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
//not relevant here so skip it
}
private void fillDb(SQLiteDatabase db)
{
InputStream rawInput = this.ctx.getResources().openRawResource(R.raw.data);
SAXParserFactory factory = SAXParserFactory.newInstance();
try
{
SAXParser saxParser = factory.newSAXParser();
saxParser.parse(rawInput, new HandlerXmlData());
}
catch(Exception e)
{
//not relevant here so skip it
}
//this manual entries would work here
//ContentValues values = new ContentValues();
//values.put("field", "aaa");
//values.put("field2", "bbb");
//db.insert("mytable", null, values);
}
문제는 내 SAXParser를 내
공용 클래스 HandlerXmlData는 DefaultHandler를 확장하는 지금 않는 DBAdapter이 {
private String currentValue = "";
public void startDocument()
{
}
public void startElement(String namespaceURI, String localName, String qName, Attributes atts)
{
}
public void characters(char[] ch, int start, int length)
{
currentValue = new String(ch, start, length);
//here I get the value from my XML
//so I need something like db.insert(...)
}
public void endElement(String uri, String localName, String qName)
{
}
그래서 내 SAXParser를 내 나는 액세스 할 수 없습니다 db 개체 DatabaseHelper 클래스에 있습니다. 이걸 어떻게 함께 가져 가야합니까?
감사합니다. A.