让类在java中工作,构建Android应用程序来解析XML

让类在java中工作,构建Android应用程序来解析XML,java,android,class,Java,Android,Class,好的,我的第一个应用程序,是一个XML解析器。在同一个类中,它工作得很好,但是如果我将它分离到一个新的class/java文件中,它不工作,编译得很好,但不会加载到AVD中。有人能看一下我的类吗?我会包括im导入等,因为我认为它与名称空间有关…非常感谢任何帮助 package com.helloworld; import android.app.Activity; import java.io.IOException; import org.xmlpull.v1.XmlPullParser;

好的,我的第一个应用程序,是一个XML解析器。在同一个类中,它工作得很好,但是如果我将它分离到一个新的class/java文件中,它不工作,编译得很好,但不会加载到AVD中。有人能看一下我的类吗?我会包括im导入等,因为我认为它与名称空间有关…非常感谢任何帮助

package com.helloworld;

import android.app.Activity;
import java.io.IOException;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
//import android.app.Activity;
import android.content.res.Resources;
import android.content.res.XmlResourceParser;
import android.os.Bundle;
import android.widget.TextView;
// import com.helloworld.XMLParse;

//import android.widget.TextView;

public class HelloworldActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.home);
    XMLParse xml_parse = new XMLParse();
    xml_parse.doXML();

    }

}
在我的课程包里,主要的课程是

包com.helloworld; 导入java.io.IOException

import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;

import android.app.Activity;
import android.content.res.Resources;
import android.content.res.XmlResourceParser;
import android.widget.TextView;

public class XMLParse extends Activity {

public void doXML() {

    TextView myXmlContent = (TextView)findViewById(R.id.my_xml);
    String stringXmlContent;
    try {
        stringXmlContent = getEventsFromAnXML(this);
        myXmlContent.setText(stringXmlContent);
    } catch (XmlPullParserException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

private String getEventsFromAnXML(Activity activity)
        throws XmlPullParserException, IOException
        {
            StringBuffer stringBuffer = new StringBuffer();
            Resources res = activity.getResources();
            XmlResourceParser xpp = res.getXml(R.xml.myxml);
            xpp.next();
            int eventType = xpp.getEventType();
            while (eventType != XmlPullParser.END_DOCUMENT)
            {
                if(eventType == XmlPullParser.START_DOCUMENT)
                {
                    stringBuffer.append("--- Start XML ---");
                }
                else if(eventType == XmlPullParser.START_TAG)
                {
                    stringBuffer.append("\nSTART_TAG: "+xpp.getName());
                }
                else if(eventType == XmlPullParser.END_TAG)
                {
                    stringBuffer.append("\nEND_TAG: "+xpp.getName());
                }
                else if(eventType == XmlPullParser.TEXT)
                {
                    stringBuffer.append("\nTEXT: "+xpp.getText());
                }
                eventType = xpp.next();
            }
            stringBuffer.append("\n--- End XML ---");
            return stringBuffer.toString();
        }
}

我对android一无所知,但我觉得奇怪的是,您的XMLParse是从Activity继承的

也许不应该,你应该通过你的HelloWorld活动:

public void doXML(Activity activity) {
    TextView myXmlContent = (TextView)activity.findViewById(R.id.my_xml);
    String stringXmlContent;
    try {
        stringXmlContent = getEventsFromAnXML(activity);
        myXmlContent.setText(stringXmlContent);
    } catch (XmlPullParserException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

在android中,活动是应用程序的可显示组件。您不能直接实例化活动,因为它需要正确地创建和维护一组操作系统代码。这里有很多错误,但在较高的层次上,您确实不希望解析XML的功能扩展活动。使用一个名为getEventsFromAnXML的方法来获取活动作为参数似乎没有意义。

我解决了这个问题,代码在