Android 如何使用getResources().getXml

Android 如何使用getResources().getXml,android,Android,我正在尝试使用getResources().getXml,以便可以访问“res”文件夹中的XML文件。显然,从我所读到的,我需要这样的东西: XmlPullParser xpp = context.getResources().getXml(R.xml.encounters); 所以我把它放进去了,我还导入了“android.content.Context” 但是我一直在“context”上得到一个错误,它说:无法对非静态字段上下文进行静态引用 有办法解决这个问题吗 这是我的全部代码: pac

我正在尝试使用getResources().getXml,以便可以访问“res”文件夹中的XML文件。显然,从我所读到的,我需要这样的东西:

XmlPullParser xpp = context.getResources().getXml(R.xml.encounters);
所以我把它放进去了,我还导入了“android.content.Context”

但是我一直在“context”上得到一个错误,它说:无法对非静态字段上下文进行静态引用

有办法解决这个问题吗

这是我的全部代码:

package t.HelloAndroid;
import java.io.IOException;
import java.io.StringReader;

import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
import android.content.res.XmlResourceParser;
import android.content.Context;
import android.app.Activity;

public class XmlParser  {

public static void main (String args[])
    throws XmlPullParserException, IOException
{

    XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
    factory.setNamespaceAware(true);
    //XmlResourceParser xrp = context.getResources().getXml(R.xml.encounters);
    XmlPullParser xpp = context.getResources().getXml(R.xml.encounters);

    int eventType = xpp.getEventType();
    while (eventType != XmlPullParser.END_DOCUMENT) {
     if(eventType == XmlPullParser.START_DOCUMENT) {
         System.out.println("Start document");
     } else if(eventType == XmlPullParser.START_TAG) {
         System.out.println("Start tag "+xpp.getName());
     } else if(eventType == XmlPullParser.END_TAG) {
         System.out.println("End tag "+xpp.getName());
     } else if(eventType == XmlPullParser.TEXT) {
         System.out.println("Text "+xpp.getText());
     }
     eventType = xpp.next();
    }
    System.out.println("End document");
}
}

在上下文位置使用活动名称。

在上下文位置使用活动名称。

确保此语句位于非静态方法中。

确保此语句位于非静态方法中。

您发布的代码将不起作用,因为
上下文仅在活动(或类似活动)中可用在Android应用程序中。仅通过
main()
调用它将无法为您设置正确的上下文(在上面的示例中,它甚至是
null
,并将导致NPE)。

您发布的代码将不起作用,因为
上下文仅在Android应用程序中的活动(或类似活动)中可用。仅通过
main()
调用它不会为您设置正确的上下文(在上面的示例中,它甚至是
null
,并且会导致NPE)。

我有这样一个问题:公共类XmlParser{private context context;公共静态void main(字符串args[])抛出XmlPullParserException,IOException{XmlPullParserFactory=XmlPullParserFactory.newInstance();factory.setNamespaceAware(true);//XmlResourceParser xrp=context.getResources().getXml(R.xml.conferences);XmlPullParser xpp=context.getResources().getXml(R.xml.conferences);很抱歉,格式设置看起来很糟糕。您可以编辑原始帖子,将代码放在其中。好主意,我没有想到我有这样的功能:公共类XmlParser{private Context Context;公共静态void main(字符串args[])抛出XmlPullParserException,IOException{XmlPullParserFactory=XmlPullParserFactory.newInstance();factory.setNamespaceAware(true);//XmlResourceParser xrp=context.getResources().getXml(R.xml.conferences);XmlPullParser xpp=context.getResources().getXml(R.xml.conferences);很抱歉,格式看起来很糟糕。你可以编辑你的原始帖子,把代码放在那里。好主意,我没想到