Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package info.rekayasa.owm;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.List;
- import net.aksingh.owmjapis.CurrentWeather;
- import net.aksingh.owmjapis.OpenWeatherMap;
- import org.json.JSONArray;
- import org.json.JSONException;
- import org.json.JSONObject;
- import android.app.Activity;
- import android.os.AsyncTask;
- import android.os.Bundle;
- import android.view.Menu;
- import android.view.MenuItem;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.TextView;
- public class MainActivity extends Activity {
- List<String> list = new ArrayList<String>();
- TextView tvCity, tvTemperature, tvDescription;
- EditText etCity;
- Button btnGet;
- String cityName;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- tvCity = (TextView) findViewById(R.id.tvCity);
- tvTemperature = (TextView) findViewById(R.id.tvTemperature);
- tvDescription = (TextView) findViewById(R.id.tvDescription);
- etCity = (EditText) findViewById(R.id.etCity);
- btnGet = (Button) findViewById(R.id.btnGet);
- btnGet.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- tvCity.setText("");
- tvTemperature.setText("");
- tvDescription.setText("");
- cityName = etCity.getText().toString();
- new MyOwm().execute();
- etCity.setText("");
- }
- });
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.main, menu);
- return true;
- }
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- // Handle action bar item clicks here. The action bar will
- // automatically handle clicks on the Home/Up button, so long
- // as you specify a parent activity in AndroidManifest.xml.
- int id = item.getItemId();
- if (id == R.id.action_settings) {
- return true;
- }
- return super.onOptionsItemSelected(item);
- }
- private class MyOwm extends AsyncTask<Void, Void, String>{
- @Override
- protected String doInBackground(Void... params) {
- OpenWeatherMap owm = new OpenWeatherMap("");
- CurrentWeather cwd;
- try {
- cwd = owm.currentWeatherByCityName(cityName);
- list.clear();
- // checking data retrieval was successful or not
- if (cwd.isValid()) {
- // checking if city name is available
- if (cwd.hasCityName()) {
- //printing city name from the retrieved data
- String cwdRaw = cwd.getRawResponse();
- JSONObject json = new JSONObject(cwdRaw);
- JSONArray weatherlist = json.getJSONArray("weather");
- JSONObject c = weatherlist.getJSONObject(0);
- String description = c.getString("description");
- System.out.println("Rawresponse: " + cwdRaw);
- System.out.println("Description: " + description);
- System.out.println("City: " + cwd.getCityName());
- list.add(cwd.getCityName());
- list.add(description);
- }
- // checking if max. temp. and min. temp. is available
- if (cwd.getMainInstance().hasMaxTemperature() && cwd.getMainInstance().hasMinTemperature()) {
- // printing the max./min. temperature
- list.add(String.valueOf(cwd.getMainInstance().getMaxTemperature()));
- list.add(String.valueOf(cwd.getMainInstance().getMinTemperature()));
- System.out.println("Temperature: " + cwd.getMainInstance().getMaxTemperature()
- + "/" + cwd.getMainInstance().getMinTemperature() + "\'F");
- }
- }
- } catch (IOException e) {
- e.printStackTrace();
- } catch (JSONException e) {
- e.printStackTrace();
- }
- return null;
- }
- @Override
- protected void onPostExecute(String result) {
- super.onPostExecute(result);
- tvCity.setText(list.get(0));
- tvDescription.setText(list.get(1));
- tvTemperature.setText(list.get(2)+"/"+list.get(3)+"\'F");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment