android 中的 getApplicationContext 方法
getApplicationContext method in android
我正在使用 Android Studio 编写一个 Android 应用程序,该应用程序使用 XMLPullParser
从文件中读取 xml 文件。现在我需要在这个 class 中使用 getApplicationContext
方法,但是当我声明一个 Context 变量时无法解析这个方法。我该怎么做?
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;
}
}
向 XMLPullParserHandler
添加一个构造函数,该构造函数采用 Context
(或 Application
)作为参数。将该值存储在 XMLPullParserHandler
上的字段中。根据需要使用该字段。
创建一个构造函数并在其中添加上下文作为参数,有点像这样。
Context ctx;
public XMLPullParserHandler(Context context)
{
this.ctx=context;
}
现在使用 ctx
作为任何你想要的上下文
我正在使用 Android Studio 编写一个 Android 应用程序,该应用程序使用 XMLPullParser
从文件中读取 xml 文件。现在我需要在这个 class 中使用 getApplicationContext
方法,但是当我声明一个 Context 变量时无法解析这个方法。我该怎么做?
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;
}
}
向 XMLPullParserHandler
添加一个构造函数,该构造函数采用 Context
(或 Application
)作为参数。将该值存储在 XMLPullParserHandler
上的字段中。根据需要使用该字段。
创建一个构造函数并在其中添加上下文作为参数,有点像这样。
Context ctx;
public XMLPullParserHandler(Context context)
{
this.ctx=context;
}
现在使用 ctx
作为任何你想要的上下文