WeatherApp Android

Odpowiedz Nowy wątek
2016-02-16 22:10

Rejestracja: 5 lat temu

Ostatnio: 1 rok temu

0

Witam Wszystkich Chcialem napisac na androida prosta apliakcje ktora pobierze informacje o pogodzie w formacie Json i przeparsuje je i wyswietli ale niestety nie mam pojecia gdzie mam blad gdyz caly czas wyskakuje mi blad ze result = null podaje kod ktory napisalem

MainActivity:

 package com.example.milosz.weatherapp;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.google.gson.Gson;

import org.w3c.dom.Text;

public class MainActivity extends AppCompatActivity  {

    ConnectionAPI connection = new ConnectionAPI();
    WeatherDataAPI weatherDataAPI = new WeatherDataAPI();
    TextView weatherRes;
    EditText cityName;
    String tempCityName;
    String responseString;
    WeatherDataAPI result;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        cityName=(EditText)findViewById(R.id.cityNameRow);
        weatherRes = (TextView)findViewById(R.id.weatherResult);

        connection.queue = Volley.newRequestQueue(this);

    }

    public void getWeather(View view) {

        tempCityName = String.valueOf(cityName.getText());
        connection.url = "http://api.openweathermap.org/data/2.5/weather?q="+tempCityName+"&appid=44db6a862fba0b067b1930da0d769e98";
        connection.stringRequest = new StringRequest(connection.url, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                 responseString=response;

                 Gson gson = new Gson();
                 result = gson.fromJson(responseString, WeatherDataAPI.class);

                 weatherRes.setText(result.getWeather());

            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Toast.makeText(getApplicationContext(),"Whoops Something go wrong",Toast.LENGTH_SHORT).show();
            }
        });
        connection.queue.add(connection.stringRequest);

    }
}

ConnectionAPI:

package com.example.milosz.weatherapp;

import android.content.Context;

import com.android.volley.RequestQueue;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;

/**

  • Created by milosz on 15.02.16.
    */
    class ConnectionAPI {

    public RequestQueue queue;
    public String url;
    public StringRequest stringRequest;

}


WeaherDataAPI:

package com.example.milosz.weatherapp;

/**

  • Created by milosz on 15.02.16.
    */
    public class WeatherDataAPI {

    private String weather;
    private String temp;

    public void setWeather(String weather){this.weather=weather;}
    public String[] getWeather()
    {
    return new String[]{weather};
    }

    public void setTemp(String temp){this.temp=temp;}
    public String[] getTemp()
    {
    return new String[]{temp};
    }

    @Override
    public String toString()
    {
    return "weather" + weather + "temp" + temp;
    }
    }

z gory dziekuje za pomoc

Pozostało 580 znaków

2016-02-17 17:22

Rejestracja: 12 lat temu

Ostatnio: 3 minuty temu

0
WeatherDataAPI result;

Nie wiem czego się spodziewałeś skoro masz tylko to przy result.

Gson gson = new Gson();
                 result = gson.fromJson(responseString, WeatherDataAPI.class);

Na dodatek pewnie model jest źle zrobiony. Nie pokazałeś JSONa

edytowany 1x, ostatnio: panryz, 2016-02-17 17:23

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0