我为Android应用程序编写了代码以获取和解析xml。但是我无法从另一个类调用方法getfeed()
。
代码如下:
public class RssReader extends Activity {
private RssFeed feed =null;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
feed=new getFeed(Url);
}
}
下面给出的另一个课程
private RssFeed getFeed(String urlToRssFeed)
{
try
{
URL url= new URL(urlToRssFeed);
SAXParserFactory factory =SAXParserFactory.newInstance();
SAXParser parser=factory.newSAXParser();
XMLReader xmlreader=parser.getXMLReader();
RssHandler theRSSHandler=new RssHandler();
xmlreader.setContentHandler(theRSSHandler);
InputSource is=new InputSource(url.openStream());
xmlreader.parse(is);
return theRSSHandler.getFeed();
}
catch (Exception ee)
{
return null;
}
}
答案 0 :(得分:0)
new
运算符,因为它无效。Url
在哪里定义?我在列出的代码中没有看到它...... Activity
做什么吗?根据{{1}}的作用,你的代码似乎没有做任何事情(除了解析一些xml,但它对方法输出没有任何作用)。也许你只是坚持第一个问题但是...... 答案 1 :(得分:0)
如果getFeed()在您的班级RssFeed中(确保它是公开的),那么请使用:
而不是feed=new getFeed(Url);
。
feed = new RssFeed();
feed.getFeed(Url);
您可能想查看有关Android上RSS阅读的question。
答案 2 :(得分:0)
由于调用方法和方法定义都在不同的类
private RssFeed getFeed(String urlToRssFeed)
此处访问说明符为private
。在课堂外无法访问私有方法。所以将访问说明符更改为public。
写
public RssFeed getFeed(String urlToRssFeed)
代替private RssFeed getFeed(String urlToRssFeed)
由于 迪帕克