Page 660 - 2
P. 660
ArrayList<ContentValues> mWeatehr;
MainActivity mContext;
public ArrayList<ContentValues> getmWeather()
{
return mWeatehr;
}
public ForeCastManager(String lon, String lat, MainActivity mContext) {
this.lon = lon;
this.lat = lat;
this.mContext = mContext;
}
public ArrayList<ContentValues> GetOpenWeather(String lon, String lat) {
ArrayList<ContentValues> mTotalValue = new ArrayList<ContentValues>();
String key = "8f5e18ebbf8ebb9c2be13f548b73bcb8";
try {
URL url = new URL("http://API.openweathermap.org/data/2.5/forecast/daily?" +
"&APPID=" + key +
"&lat=" + lat +
"&lon=" + lon +
"&mode=xml" +
"&units=metric" +
"&cnt=" + 1);
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
// 위에서 생성된 URL 을 통하여 서버에 요청하면 결과가 XML Resource 로 전달됨
XmlPullParser parser= factory.newPullParser();
// XML Resource 를 파싱할 parser 를 factory 로 생성
parser.setInput(url.openStream(), null);
// 파서를 통하여 각 요소들의 이벤트성 처리를 반복수행
int parserEvent = parser.getEventType();
while (parserEvent != XmlPullParser.END_DOCUMENT) {
if (parserEvent == XmlPullParser.START_TAG && parser.getName().equals("time
")) {
// 시작태그의 이름을 알아냄
int checkStartTag = parserEvent;
ContentValues mContent = new ContentValues();
for (; ; ) {
if (checkStartTag == XmlPullParser.START_TAG && parser.getName().eq
uals("time")) {
mContent.put("day", parser.getAttributeValue(null, "day"));
- 660 -