私はXMLPullParser
を使用してファイルからxmlファイルを読み込むAndroidスタジオを使用してAndroidアプリケーションを作成しています。今度はこのクラスでgetApplicationContext
メソッドを使用する必要がありますが、Context変数を宣言するとこのメソッドを解決できません。どうしたらいいですか?アンドロイドのgetApplicationContextメソッド
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
public class XMLPullParserHandler {
private List<App> apps= new ArrayList<App>();
private App app;
private String text;
public List<App> getApps() {
return apps;
}
public List<App> parse(InputStream is) {
try {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser parser = factory.newPullParser();
parser.setInput(is, null);
int eventType = parser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
String tagname = parser.getName();
switch (eventType) {
case XmlPullParser.START_TAG:
if (tagname.equalsIgnoreCase("app")) {
app = new App();
}
break;
case XmlPullParser.TEXT:
text = parser.getText();
break;
case XmlPullParser.END_TAG:
if (tagname.equalsIgnoreCase("app")) {
apps.add(app);
}else if (tagname.equalsIgnoreCase("id")) {
app.setId(Integer.parseInt(text));
} else if (tagname.equalsIgnoreCase("title")) {
app.setTitle(text);
} else if (tagname.equalsIgnoreCase("activity")) {
app.setActivity(text);
} else if (tagname.equalsIgnoreCase("location")){
app.setLocation(Integer.parseInt(text));
} else if (tagname.equalsIgnoreCase("address")){
app.setAddress(text);
}
break;
default:
break;
}
eventType = parser.next();
}
} catch (XmlPullParserException e) {e.printStackTrace();}
catch (IOException e) {e.printStackTrace();}
return apps;
}
}
アクティビティを拡張したい、これまでコンテキストとして
ctx
を使うのか? –