URL에서 XML을 구문 분석하여 목록보기에 표시하려고했습니다. 그러나, 목록보기 같은 을 보여주는이Android Async XML 구문 분석
http://postimg.org/image/ucbdjpwj5/
여기
내 코드MainActivity있는 [내 명성 (10) 아래에 있기 때문에 내가 직접 여기에 모든 이미지를 게시 할 수 없습니다]
getRssDataTask ts = new getRssDataTask();
ts.execute("http://www.xyzapp.com/feed");
}
private class getRssDataTask extends AsyncTask<String, Void, List<NewsItem>>{
@Override
protected List<NewsItem> doInBackground(String... params) {
// TODO Auto-generated method stub
try {
// Create RSS reader
RSSReader rssReader = new RSSReader(params[0]);
// Parse RSS, get items
return rssReader.getItems();
} catch (Exception e) {
Log.e("App", e.getMessage());
}
return null;
}
@Override
protected void onPostExecute(List<NewsItem> result) {
ListView Items = (ListView) findViewById(R.id.listView);
// Create a list adapter
ArrayAdapter<NewsItem> rs = new ArrayAdapter<NewsItem>(local,android.R.layout.simple_list_item_1, result);
// Set list adapter for the ListView
Items.setAdapter(rs);
Rs
public class RSSReader {
private String RssUrl;
public RSSReader(String RssUrl) {
// TODO Auto-generated constructor stub
this.RssUrl = RssUrl;
}
public List<NewsItem> getItems() throws Exception{
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();
RssHandler handler = new RssHandler();
saxParser.parse(RssUrl, handler);
return handler.getItems();
}
}
RssReader sHandler
public class RssHandler extends DefaultHandler {
private List<NewsItem> rssItem;
private NewsItem currentItem;
private boolean parsingTitle;
private boolean parsingDes;
public RssHandler() {
// TODO Auto-generated constructor stub
rssItem = new ArrayList<NewsItem>();
}
public List<NewsItem> getItems() {
return rssItem;
}
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
// TODO Auto-generated method stub
if ("item".equals(qName)) {
currentItem = new NewsItem();
} else if ("title".equals(qName)) {
parsingTitle = true;
} else if ("content:encoded".equals(qName)) {
parsingDes = true;
}
}
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
// TODO Auto-generated method stub
if ("item".equals(qName)) {
rssItem.add(currentItem);
currentItem = null;
} else if ("title".equals(qName)) {
parsingTitle = false;
} else if ("content:encoded".equals(qName)) {
parsingDes = false;
}
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
// TODO Auto-generated method stub
if (parsingTitle) {
if (currentItem != null)
currentItem.setTitle(new String(ch, start, length));
} else if (parsingDes) {
if (currentItem != null) {
currentItem.setDes(new String(ch, start, length));
parsingDes = false;
}
}
}
}
나는 문제를 알아낼 수 없습니다. 내 질문은 내가 뭘 잘못하고 있는거야?
당신은 내가 두 개의 문자열 제목 및 설명을()'NewsItem' – Raghunandan