- /**
- * A placeholder fragment containing a simple view.
- */
- public static class PlaceholderFragment extends Fragment {
-
- public PlaceholderFragment() {
- }
-
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- View rootView = inflater.inflate(R.layout.fragment_main, container, false);
-
- String[] forecastArray = {
- "Today - Sunny - 10/10",
- "Tomorrow - Cloudy - 11/11",
- "Tuesday - Snow - 12/12",
- "Wednesday - Rain - 13/13",
- "Thursday - Hail - 14/14",
- "Friday - Scorchio - 15/15",
- "Saturday - Fog - 16/16"
- };
-
- List<String> weekForecast = new ArrayList<String>(
- Arrays.asList(forecastArray));
- ArrayAdapter<String> forecastAdapter = new ArrayAdapter<String>(
- getActivity(),
- R.layout.list_item_forecast,
- R.id.list_item_forecast_textview,
- weekForecast
- );
- ListView list_view = (ListView) rootView.findViewById(R.id.listview_forecast);
- list_view.setAdapter(forecastAdapter);
-
- // These two need to be declared outside the try/catch
- // so that they can be closed in the finally block.
- HttpURLConnection urlConnection = null;
- BufferedReader reader = null;
-
- // Will contain the raw JSON response as a string.
- String forecastJsonStr = null;
-
- try {
- // Construct the URL for the OpenWeatherMap query
- // Possible parameters are avaiable at OWM's forecast API page, at
- // http://openweathermap.org/API#forecast
- URL url = new URL("http://api.openweathermap.org/data/2.5/forecast/daily?q=94043&mode=json&units=metric&cnt=7");
-
- // Create the request to OpenWeatherMap, and open the connection
- urlConnection = (HttpURLConnection) url.openConnection();
- urlConnection.setRequestMethod("GET");
- urlConnection.connect();
-
- // Read the input stream into a String
- InputStream inputStream = urlConnection.getInputStream();
- StringBuffer buffer = new StringBuffer();
- if (inputStream == null) {
- // Nothing to do.
- forecastJsonStr = null;
- }
- reader = new BufferedReader(new InputStreamReader(inputStream));
-
- String line;
- while ((line = reader.readLine()) != null) {
- // Since it's JSON, adding a newline isn't necessary (it won't affect parsing)
- // But it does make debugging a *lot* easier if you print out the completed
- // buffer for debugging.
- buffer.append(line + "\n");
- }
-
- if (buffer.length() == 0) {
- // Stream was empty. No point in parsing.
- forecastJsonStr = null;
- }
- forecastJsonStr = buffer.toString();
- } catch (IOException e) {
- Log.e("PlaceholderFragment", "Error ", e);
- // If the code didn't successfully get the weather data, there's no point in attemping
- // to parse it.
- forecastJsonStr = null;
- } finally{
- if (urlConnection != null) {
- urlConnection.disconnect();
- }
- if (reader != null) {
- try {
- reader.close();
- } catch (final IOException e) {
- Log.e("PlaceholderFragment", "Error closing stream", e);
- }
- }
- }
-
- return rootView;
- }
- }