Blame view

app/src/main/java/com/example/junsang/simsimi/MainActivity.java 4.23 KB
e12cc46b8   junsang   basic android app
1
  package com.example.junsang.simsimi;
a7ab6b18f   junsang   UI modified, read...
2
3
  import android.os.AsyncTask;
  import android.support.v7.app.ActionBarActivity;
e12cc46b8   junsang   basic android app
4
  import android.os.Bundle;
e12cc46b8   junsang   basic android app
5
6
  import android.view.Menu;
  import android.view.MenuItem;
a7ab6b18f   junsang   UI modified, read...
7
  import android.widget.TextView;
e12cc46b8   junsang   basic android app
8

a7ab6b18f   junsang   UI modified, read...
9
10
  import org.json.JSONArray;
  import org.json.JSONException;
6d661f0e7   junsang   print pm 2.5 in s...
11
12
13
14
15
16
  //import org.w3c.dom.Document;
  
  import org.jsoup.Jsoup;
  import org.jsoup.nodes.Document;
  import org.jsoup.nodes.Element;
  import org.jsoup.select.Elements;
a7ab6b18f   junsang   UI modified, read...
17
18
19
20
21
22
23
  
  import java.io.BufferedReader;
  import java.io.IOException;
  import java.io.InputStream;
  import java.io.InputStreamReader;
  import java.net.HttpURLConnection;
  import java.net.URL;
6d661f0e7   junsang   print pm 2.5 in s...
24
  import java.util.Iterator;
a7ab6b18f   junsang   UI modified, read...
25
26
27
28
29
30
31
  
  
  public class MainActivity extends ActionBarActivity {
  
      private static final String URL = "http://aqicn.org/city/seoul";
      String results;
      TextView pm_tv;
e12cc46b8   junsang   basic android app
32

6d661f0e7   junsang   print pm 2.5 in s...
33
34
35
36
37
38
39
      //
      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;
      }
e12cc46b8   junsang   basic android app
40
41
42
43
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
a7ab6b18f   junsang   UI modified, read...
44
45
46
47
  
          pm_tv = (TextView) findViewById(R.id.pm_tv);
  
          new DownloadPageTask().execute(URL);
e12cc46b8   junsang   basic android app
48
49
50
51
      }
  
      @Override
      public boolean onCreateOptionsMenu(Menu menu) {
e12cc46b8   junsang   basic android app
52
53
54
55
56
57
          getMenuInflater().inflate(R.menu.menu_main, menu);
          return true;
      }
  
      @Override
      public boolean onOptionsItemSelected(MenuItem item) {
e12cc46b8   junsang   basic android app
58
          int id = item.getItemId();
e12cc46b8   junsang   basic android app
59
60
61
62
63
64
          if (id == R.id.action_settings) {
              return true;
          }
  
          return super.onOptionsItemSelected(item);
      }
a7ab6b18f   junsang   UI modified, read...
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
  
      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();
              }
6d661f0e7   junsang   print pm 2.5 in s...
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
              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+"㎍/㎥야~");
a7ab6b18f   junsang   UI modified, read...
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
          }
      }
  
      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;
      }
  }