rachmadi

MainActivity

Feb 5th, 2015
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.37 KB | None | 0 0
  1. package info.rekayasa.owm;
  2.  
  3. import java.io.IOException;
  4. import java.util.ArrayList;
  5. import java.util.List;
  6. import net.aksingh.owmjapis.CurrentWeather;
  7. import net.aksingh.owmjapis.OpenWeatherMap;
  8. import org.json.JSONArray;
  9. import org.json.JSONException;
  10. import org.json.JSONObject;
  11. import android.app.Activity;
  12. import android.os.AsyncTask;
  13. import android.os.Bundle;
  14. import android.view.Menu;
  15. import android.view.MenuItem;
  16. import android.view.View;
  17. import android.view.View.OnClickListener;
  18. import android.widget.Button;
  19. import android.widget.EditText;
  20. import android.widget.TextView;
  21.  
  22.  
  23. public class MainActivity extends Activity {
  24.     List<String> list = new ArrayList<String>();
  25.     TextView tvCity, tvTemperature, tvDescription;
  26.     EditText etCity;
  27.     Button btnGet;
  28.     String cityName;
  29.  
  30.     @Override
  31.     protected void onCreate(Bundle savedInstanceState) {
  32.         super.onCreate(savedInstanceState);
  33.         setContentView(R.layout.activity_main);
  34.         tvCity = (TextView) findViewById(R.id.tvCity);
  35.         tvTemperature = (TextView) findViewById(R.id.tvTemperature);
  36.         tvDescription = (TextView) findViewById(R.id.tvDescription);
  37.         etCity = (EditText) findViewById(R.id.etCity);
  38.         btnGet = (Button) findViewById(R.id.btnGet);
  39.         btnGet.setOnClickListener(new OnClickListener() {
  40.            
  41.             @Override
  42.             public void onClick(View v) {
  43.                 tvCity.setText("");
  44.                 tvTemperature.setText("");
  45.                 tvDescription.setText("");
  46.                
  47.                 cityName = etCity.getText().toString();
  48.                 new MyOwm().execute();
  49.                 etCity.setText("");
  50.             }
  51.         });        
  52.     }
  53.  
  54.  
  55.     @Override
  56.     public boolean onCreateOptionsMenu(Menu menu) {
  57.         // Inflate the menu; this adds items to the action bar if it is present.
  58.         getMenuInflater().inflate(R.menu.main, menu);
  59.         return true;
  60.     }
  61.  
  62.     @Override
  63.     public boolean onOptionsItemSelected(MenuItem item) {
  64.         // Handle action bar item clicks here. The action bar will
  65.         // automatically handle clicks on the Home/Up button, so long
  66.         // as you specify a parent activity in AndroidManifest.xml.
  67.         int id = item.getItemId();
  68.         if (id == R.id.action_settings) {
  69.             return true;
  70.         }
  71.         return super.onOptionsItemSelected(item);
  72.     }
  73.    
  74.     private class MyOwm extends AsyncTask<Void, Void, String>{
  75.  
  76.         @Override
  77.         protected String doInBackground(Void... params) {
  78.             OpenWeatherMap owm = new OpenWeatherMap("");
  79.             CurrentWeather cwd;        
  80.             try {
  81.                 cwd = owm.currentWeatherByCityName(cityName);
  82.                 list.clear();
  83.                 // checking data retrieval was successful or not
  84.                 if (cwd.isValid()) {
  85.                     // checking if city name is available
  86.                     if (cwd.hasCityName()) {
  87.                         //printing city name from the retrieved data
  88.                         String cwdRaw = cwd.getRawResponse();
  89.                         JSONObject json = new JSONObject(cwdRaw);
  90.                         JSONArray weatherlist = json.getJSONArray("weather");
  91.                         JSONObject c = weatherlist.getJSONObject(0);
  92.                         String description = c.getString("description");
  93.                         System.out.println("Rawresponse: " + cwdRaw);
  94.                         System.out.println("Description: " + description);
  95.                         System.out.println("City: " + cwd.getCityName());
  96.                         list.add(cwd.getCityName());
  97.                         list.add(description);
  98.                     }
  99.  
  100.                     // checking if max. temp. and min. temp. is available
  101.                     if (cwd.getMainInstance().hasMaxTemperature() && cwd.getMainInstance().hasMinTemperature()) {
  102.                         // printing the max./min. temperature
  103.                         list.add(String.valueOf(cwd.getMainInstance().getMaxTemperature()));
  104.                         list.add(String.valueOf(cwd.getMainInstance().getMinTemperature()));
  105.                         System.out.println("Temperature: " + cwd.getMainInstance().getMaxTemperature()
  106.                                     + "/" + cwd.getMainInstance().getMinTemperature() + "\'F");
  107.                     }
  108.                 }
  109.                
  110.             } catch (IOException e) {
  111.                 e.printStackTrace();
  112.             } catch (JSONException e) {
  113.                 e.printStackTrace();
  114.             }
  115.             return null;
  116.         }
  117.        
  118.         @Override
  119.         protected void onPostExecute(String result) {
  120.             super.onPostExecute(result);
  121.             tvCity.setText(list.get(0));
  122.             tvDescription.setText(list.get(1));
  123.             tvTemperature.setText(list.get(2)+"/"+list.get(3)+"\'F");
  124.         }
  125.        
  126.     }
  127. }
Advertisement
Add Comment
Please, Sign In to add comment