Итак, я пишу приложение для Android, и у меня есть класс синтаксического анализатора xml, который анализирует мои xml-файлы и создает мне дерево
Я хочу повторно использовать код синтаксического анализатора xml для различных xml-файлов
Однако, проблемы с getXml (resourceID) не работают:
public class myactivity extends Activity {
public void someMethod() {
Xmlparser myparser = new Xmlparser();
myparser.parseXML(this.context, R.xml.somedata);
}
public void someOtherMethod(){
Xmlparser adifferentparser = new Xmlparser();
adifferentparser.parseXML(this.context, R.xml.differentdata);
}
}
public class Xmlparser{
import java.io.IOException;
import java.util.Vector;
import org.xmlpull.v1.XmlPullParserException;
import android.content.Context;
import android.content.res.Resources;
import android.content.res.XmlResourceParser;
private XmlResourceParser xrp;
public String parseXML(Context cont, int resourceID){
xrp = cont.getResources().getXml(resourceID);
//xrp = cont.getResources().getXml(R.xml.differentdata); // this works, but isn't any good for code reuse!
}
}
Когда я жестко кодирую его с помощью идентификатора ресурса, он работает (например, getXml (R.xml.differentdata)), но некогда я передаю идентификатор ресурса как int в метод в классе, где я знаю, какой XML-файл я хочу использовать (как в приведенном выше фрагменте кода)
, я могу создать объект XmlResourceParser в классе действия,получите файл xml и затем передайте этот объект XmlResourceParser в мой Xmlparser, но это решило бы неправильную проблему, а именно, как передать идентификатор ресурса