package greendrm.rss.reader;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class RssReaderActivity extends Activity {
private ListView list;
private ArrayList<String> rsses;
private ArrayAdapter<String> adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
list = (ListView)findViewById(R.id.listView1);
rsses = new ArrayList<String>();
getRsses();
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, rsses);
list.setAdapter(adapter);
}
private void getRsses() {
try {
//StringBuilder sb = new StringBuilder();
URL url = new URL("http://news.google.co.kr/news?pz=1&cf=all&ned=kr&hl=ko&output=rss");
XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser();
parser.setInput(url.openStream(), null);
int eventType = parser.getEventType();
String tag;
boolean inTitle = false;
while(eventType != XmlPullParser.END_DOCUMENT) {
switch(eventType) {
case XmlPullParser.TEXT:
tag = parser.getName();
if (inTitle) {
//sb.append(parser.getText()).append('\n');
rsses.add(parser.getText().toString());
}
break;
case XmlPullParser.END_TAG:
tag = parser.getName();
if (tag.compareTo("title") == 0) {
inTitle = false;
}
break;
case XmlPullParser.START_TAG:
tag = parser.getName();
if (tag.compareTo("title") == 0) {
inTitle = true;
}
break;
}
eventType = parser.next();
}
//rsses.add(sb.toString());
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (XmlPullParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void updateRsses() {
rsses.clear();
getRsses();
adapter.notifyDataSetChanged();
}
}