package com.example.junsang.simsimi;
import android.os.AsyncTask;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
import org.json.JSONArray;
import org.json.JSONException;
//import org.w3c.dom.Document;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Iterator;
public class MainActivity extends ActionBarActivity {
private static final String URL = "http://aqicn.org/city/seoul";
String results;
TextView pm_tv;
//
public String parse_pm(String str){
String parse_1 = str.split("<td id=\'cur_pm25\' class=\'tdcur\' style=\'font-weight:bold;font-size:11px;\' align=center>")[1];
String parse_2 = parse_1.split("</td>")[0];
return parse_2;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
pm_tv = (TextView) findViewById(R.id.pm_tv);
new DownloadPageTask().execute(URL);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
private class DownloadPageTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
try {
return getHtmlFromHttp(urls[0]);
} catch (IOException e) {
return "Unable to retrieve web page.";
}
}
@Override
protected void onPostExecute(String result) {
results = result;
// 지금 result : html
// parsing -> JsonArray
String jsonStr = "hi";
try {
JSONArray a = new JSONArray(jsonStr);
} catch (JSONException e) {
e.printStackTrace();
}
jsonStr = parse_pm(result);
/*
Document doc = Jsoup.parse(result);
Elements rows = doc.select("td.line-content ");
for (Element row : rows) {
Iterator<Element> iterElem = row.getElementsByTag("div").iterator();
StringBuilder builder = new StringBuilder();
System.out.println(builder);
builder.append(iterElem.next());
jsonStr= jsonStr+builder.toString();
}*/
// String testStr = (?:"<td id='cur_pm25' class='tdcur' style='font-weight:bold;font-size:11px;' align=center>") result;
pm_tv.setText("지금 서울의 초미세먼지 농도는 "+jsonStr+"㎍/㎥야~");
}
}
private String getHtmlFromHttp(String myUrl) throws IOException {
InputStream is = null;
String str = "";
try {
URL url = new URL(myUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(10000);
conn.setConnectTimeout(10000);
conn.setRequestMethod("GET");
conn.setDoInput(true);
conn.connect();
int resCode = conn.getResponseCode();
if (resCode == HttpURLConnection.HTTP_OK) {
StringBuffer sb = new StringBuffer();
is = conn.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line;
while ((line = br.readLine()) != null) {
sb.append(line);
}
str = sb.toString();
} else {
conn.disconnect();
}
} finally {
if (is != null) {
is.close();
}
}
return str;
}
}